华为OJ——(练习用)挑7

    xiaoxiao2025-07-27  7

    题目描述

    输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数

    输入描述:

    一个正整数N。(N不大于30000)

    输出描述:

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

    输入例子:
    20
    输出例子:
    3

    两种思路:

    1、依次遍历要检测数的每个位上的数字,如果包含7就符合要求

    2、把要检测的数变成字符串,如果包含7的话就符合要求

    方法一:

    import java.util.*; public class Main{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()){ int N=scan.nextInt(); int count=0; for(int i=1;i<=N;i++){ int muber=i; if(muber%7==0){//7的倍数符合要求 count++; } else{ //依次遍历要检测数的每个数字,如果包含7就符合要求 while(muber>0){ if(muber%10==7){ count++; muber/=10; break; //这里一定要加break,一个数字,一旦有一个7,立马退出循环,查下个数 } else muber/=10; } } } System.out.println(count); } } }方法二:

    import java.util.*; public class Main{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()){ Integer N=scan.nextInt(); int count=0; for(Integer i=1;i<=N;i++){ if(i%7==0) //7的整数倍自然是对的 count++; //把要检测的数变成字符串,如果包含7的话也符合要求 else if(i.toString().contains("7")) count++; } System.out.println(count); } } }

    转载请注明原文地址: https://ju.6miu.com/read-1301126.html
    最新回复(0)