解题思路:穷举每个数字,依次判断每一位是否包含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; } }