题解 | #挑7#
挑7
https://www.nowcoder.com/practice/ba241b85371c409ea01ac0aa1a8d957b
模拟即可,需要注意的是不能直接将 n / 7 加到 count 中,因为 7 的倍数也可能某一位含 7,它们应该被记录为同一个数。
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int n = in.nextInt(); int count = 0; for (int i = 1; i <= n; i++) { if (i % 7 == 0) { count++; } else { int bit = 1; while (bit <= i) { if ((i % (bit * 10)) / bit == 7) { count++; break; } bit *= 10; } } } System.out.println(count); } } }