1. 程式人生 > 其它 >第六屆藍橋杯大賽省賽C語言B組-填空題-獎券數目(Java實現)

第六屆藍橋杯大賽省賽C語言B組-填空題-獎券數目(Java實現)

技術標籤:藍橋杯java藍橋杯獎券數目


獎券數目

有些人很迷信數字,比如帶“4”的數字,認為和“死”諧音,就覺得不吉利。
雖然這些說法純屬無稽之談,但有時還要迎合大眾的需求。某抽獎活動的獎券號碼是5位數(10000-99999),要求其中不要出現帶“4”的號碼,主辦單位請你計算一下,如果任何兩張獎券不重號,最多可發出獎券多少張。

請提交該數字(一個整數),不要寫任何多餘的內容或說明性文字。

方法一:使用數學的排列組合直接算出來

a可以取的數字有:1-9,不選4的情況有8

bcde可以取的數字有: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);

 }

}