奖券数目|2015年蓝桥杯B组题解析第一题-fishers

奖券数目

有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。

答案:52488

思路:枚举,枚举出1000099999的不含4的五位数。怎么枚举?for循环100009999,怎么判断不含4?取每一位上的值,判断每一位是否含4。

#include<iostream>
using namespace std;

int main(){
	int cnt = 0;
	
	for(int i = 10000;i<=99999;i++){
		int flag = 0;//判断是否有4的标记量 
		int sum = i;
		//判断一个5位数是否含有4
		while(sum){
			if(sum%10 == 4){
				flag = 1;
				break;
			}
			sum = sum/10;
		}
		
		if(!flag){
			cnt++;
		}
	}
	cout<<cnt<<endl;
}
原文地址:https://www.cnblogs.com/fisherss/p/10299084.html