有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
答案:52488
这里是不巧妙写法 while循环 x%10=4更简单
#include <iostream>
using namespace std;
bool check(int x){
//我直接把它五位都表示出来 看看有4的话false
int a=x/10000;//万位
int b=x%10000/1000;//千位
int c=x%1000/100;//百位
int d=x%100/10;//十位
int e=x%10;//各位
if(a !=4 && b!=4 && c!=4 && d !=4 && e !=4 ){
return true;
}
else{
return false;
}
}
int main(){
int cnt=0;
for(int i=10000;i<=99999;i++){
if(check(i)){
cnt++;
}
}
cout<<cnt;
}
巧妙版本
#include <iostream>
using namespace std;
bool check(int x){
while(x){
if(x%10==4){
return false;
}
x=x/10;
}
return true;
}
int main(){
int cnt=0;
for(int i=10000;i<=99999;i++){
if(check(i)){
cnt++;
}
}
cout<<cnt;
}