思路解析:
- 首先使用
Scanner
类从控制台获取一个正整数n
。 - 使用一个循环遍历从1到
n
的每一个数。 - 对于每个数,判断它是否是7的倍数或者包含数字7。
- 使用模运算
i % 7 == 0
判断是否是7的倍数。 - 使用
String.valueOf(i).contains("7")
判断是否包含数字7。将整数转换为字符串,然后使用contains
方法判断是否包含指定的字符。
- 若满足以上条件,则将计数器
count
加1。 - 循环结束后,输出计数器
count
的值。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
for (int i = 1; i <= n; i++) {
if (i % 7 == 0 || String.valueOf(i).contains("7")) {
count++;
}
}
System.out.println(count);
}
}
String.valueOf(i)
将整数i转换为一个字符串。
然后,.contains("7")
是用来判断字符串中是否包含子字符串"7"。如果包含,则返回true,否则返回false。