Java题解 | HJ55 #挑7#

挑7

https://www.nowcoder.com/practice/ba241b85371c409ea01ac0aa1a8d957b

描述

输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数(一组测试用例里可能有多组数据,请注意处理)

输入描述:
一个正整数N。(N不大于30000)

输出描述:
不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.

示例1

输入
20

输出
3

解法

  • 遍历,从7开始一直遍历到N;
  • 遇到是7的倍数或者含7的数就记数;
  • 7的倍数可对7取余数为0判断;
  • 含7的数就是用字符串的包含方法判断
 * Copyright (c) waylau.com, 2022. All rights reserved.
 */

package com.waylau.nowcoder.exam.oj.huawei;

import java.util.Scanner;

/**
 * HJ55 挑7.
 * 输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数
 * (一组测试用例里可能有多组数据,请注意处理)
 * 输入描述:一个正整数N。(N不大于30000)
 * 输出描述:不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.
 * 示例1
 * 输入
 * 20
 * 输出
 * 3
 *
 * @author <a href="">Way Lau</a>
 * @since 2022-08-26
 */
public class HJ055PickSeven {
    public static void main(String[] args) {
        // 输入
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        // 输出
        System.out.println(pickSeven(n));

        // 关闭
        in.close();
    }

    private static int pickSeven(int n) {
        int count = 0;

        // 从7算到n行为止。
        for (int i = 7; i <= n; i++) {
            if (i % 7 == 0) {
                count++;
                continue;
            }

            if ((i + "").contains("7")) {
                count++;
                continue;
            }
        }

        return count;
    }
}

参考引用

#华为机考#
全部评论

相关推荐

10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务