题目:输出 1到n之间 的与 7 有关数字的个数。 一个数与7有关是指这个数是 7 的倍数,或者是包含 7 的数字(如 17 ,27 ,37 ... 70 ,71 ,72 ,73...) 比如输入20,那么1到20之间有7、14和17这三个数,那么就输出3.
public class Demo7 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
System.out.println(getSevenCount(a));
}
}
private static long getSevenCount(int n) {
List<Integer> a = new ArrayList<>();
List<Integer> b = new ArrayList<>();
for (int i = 1; i <= n; i++) {
if (i % 7 == 0) {
a.add(i);
}
if (String.valueOf(i).contains("7")) {
b.add(i);
}
}
a.addAll(b);
long count = a.stream().distinct().count();
return count;
}
}
如果大家需要视频版本的讲解,欢迎关注我的B站: