输出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);
}
}
}
原文:http://blog.csdn.net/tingzhiyi/article/details/52209179