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; } }
参考引用
- 本系列归档至https://github.com/waylau/nowcoder-exam-oj
- 《Java 数据结构及算法实战》:https://github.com/waylau/java-data-structures-and-algorithms-in-action
- 《数据结构和算法基础(Java 语言实现)》(柳伟卫著,北京大学出版社出版):https://item.jd.com/13014179.html