您的位置:首页 > 编程语言 > Java开发

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

2016-08-15 11:04 274 查看


题目描述

输出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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java java笔试题 挑7