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