码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-08-15 19:15:44      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

输出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);
		}
	}
}





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

标签:

原文地址:http://blog.csdn.net/tingzhiyi/article/details/52209179

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!