奖券数目|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;
}