解题思路:穷举每个数字,依次判断每一位是否包含7,若包含则计数加一,同时跳过剩余数位的检测,进入下一数字的判断。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNextInt()){
int n = in.nextInt();
System.out.println(count(n));
}
}
//挑7函数
private static int count(int n){
int sum = 0; //7的计数变量
for(int i=1; i <= n; i++){
//判断是否为7的倍数
if(i%7 == 0){
sum++;
continue;
}
//依次判断个位、十位、百位...是否为7
int t = i;
do{
if(t%10 == 7){
sum++;
break;
}
}while((t /= 10) != 0);
}
return sum;
}
} 
京公网安备 11010502036488号