奖券数目
有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
方法一:使用数学的排列组合直接算出来
a可以取的数字有:1-9,不选4的情况有8种
b、c、d、e可以取的数字有:0-9,不选4的情况有9种
答案:8*9*9*9*9=52488
方法二:暴力枚举,写5层循环,每层循环代表每位数
public class _奖券数目 {
public static void main(String[] args) {
int count = 0;
for(int a=1; a<=9; a++) {
for(int b=0; b<=9; b++) {
for(int c=0; c<=9; c++) {
for(int d=0; d<=9; d++) {
for(int e=0; e<=9; e++) {
if(a!=4 && b!=4 && c!=4 && d!=4 && e!=4)
count++;
}
}
}
}
}
System.out.println(count);
}
}
方法三:直接写10000-99999的循环,逐一枚举
public class _奖券数目3 {
public static void main(String[] args) {
int count = 0;
for(int i=10000; i<=99999; i++) {
//将10000-99999之间的所有5位数都逐个分解成5个1位数, 之后逐个数字判断是否为数字4
if(i/10000!=4 && i/1000%10!=4 && i/100%10!=4 && i/10%10!=4 && i%10!=4)
count++;
}
System.out.println(count);
}
}