从1到n遍历,先判断是不是7的倍数,不是的话就取每一位判断是不是7
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static boolean f(int n){ boolean one = false; if(n%7==0){ one = true; } else{ while(n>0){ int a = n%10; if(a==7){ one = true; } n/=10; } } return one; } public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 int n = in.nextInt(); int cnt = 0; for(int i=1;i<=n;i++){ if(f(i)){ cnt++; } } System.out.print(cnt); } }