不要62 HDU – 2089

对于数字好像大家都喜欢找他们的谐音,所以,62和4,这样的数字,人们会觉得这样的数不好。 
我们定义,如果给定的一串数字,如果其中含有62或者4,我们叫他为not good number。例如:62123 96480 66734,但是对于61152这样的数字,虽然含有6和2,但不是62连号,所以他是一个good number。
现在,让你找出对于区间[n,m],找出里面的good number的个数。Input

输入有多组数据,每组由两个整数n、m构成(0<n≤m<1000000),如果n和m均为0,则输入结束。Output

对于每个整数对,输出good number的个数,该数值占一行。Sample Input

1 100
0 0Sample Output

80

#include<stdio.h>
#include<stdlib.h>
//打表,即求出一个区间内的所有结果然后需要的就在表中寻找
int judge(int x){
	while(x!=0){
		if(x%100==62){
			return 0;
		}
		else if(x%10==4){
			return 0;
		}

		x/=10;
	}
	return 1;//为什么不把return 1;放在循环里面呢,是因为要求出每个位置才的数你才能确定它是不是good number,而不能只通过一次就判断出来呀 
}
int x[10000000];

int main(){
	int a,b;
	for(int i=1; i<1000000 ;i++){
		x[i] = x[i-1] + judge(i);//因为判断返回的值就是0或者1 ,所以如果是good number 就会有+1,就相当于帮你计数了 
	}
	while(scanf("%d%d",&a,&b)){
		if(a==0||b==0){
			break; 
		}
		printf("%d\n",x[b]-x[a-1]); //b之前的所有减去a之前的所有就是a与b之间的了,因为包括端点a所以减的是a-1 
	} 
	return 0;
}
发布了66 篇原创文章 · 获赞 3 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览