描述
你需要统计 1 到 n 之间与 7 有关的数字的个数。
与 7 有关的数字包括:
∙ 是 7 的倍数(如 7,14,21 等);
∙ 包含数字 7(如 17,27,37,⋯ ,70,71,72,⋯ 等)。
与 7 有关的数字包括:
∙ 是 7 的倍数(如 7,14,21 等);
∙ 包含数字 7(如 17,27,37,⋯ ,70,71,72,⋯ 等)。
输入描述:
输入一个整数 n(1≦n≦3×104)。
输出描述:
输出一个整数,代表区间内与 7 有关的数字的个数。
解法一(java):
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
int num = in.nextInt();
int result = 0;
for (int i = 6; i <= num ; i++) {
if (i % 7 == 0) {
result++;
continue;
}
if ((""+i).contains("7")) {
result++;
}
}
System.out.println(result);
}
}
思路:遍历,先检查是否为7的倍数,是就将结果加一然后跳过本次循环执行下一次,不是就判断是否包含7,包含也加一。