牛客华为算法-HJ55 挑7

我爱海鲸 2025-04-23 10:18:15 暂无标签

简介华为OD

挑7_牛客题霸_牛客网

描述

你需要统计 1 到 n 之间与 7 有关的数字的个数。

与 7 有关的数字包括:
∙ 是 7 的倍数(如 7,14,21 等);
∙ 包含数字 7(如 17,27,37,⋯ ,70,71,72,⋯ 等)。

输入描述:

输入一个整数 n(1≦n≦3×104)

输出描述:

输出一个整数,代表区间内与 7 有关的数字的个数。
解法一(java):
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 a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        int num = in.nextInt();
        int result = 0;
        for (int i =  6; i <= num ; i++) {
            if (i  % 7 == 0) {
                result++;
                continue;
            }
            if ((""+i).contains("7")) {
                result++;
            }
        }
        System.out.println(result);
    }
}

思路:遍历,先检查是否为7的倍数,是就将结果加一然后跳过本次循环执行下一次,不是就判断是否包含7,包含也加一。

你好:我的2025