奖券数目

有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。

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

答案:52488

思路:枚举,枚举出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;
}
05-04 04:43