B组
奖券数目
有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
解法1:
1 #include <stdio.h>
2
3 int main()
4 {
5 int a;
6 int b;
7 int c;
8 int d;
9 int e;
10
11 long count = 0;
12
13 for(a = 0;a < 10;a++)
14 for(b = 0;b < 10;b++)
15 for(c = 0;c < 10;c++)
16 for(d = 0;d < 10;d++)
17 for(e = 0;e < 10;e++)
18 if(a != 4 && b != 4 && c != 4 && d != 4 && e!= 4)
19 count++;
20 printf("count = %ld\n",count);
21 }
解法2:
1 #include <stdio.h>
2
3 int main()
4 {
5 long i;
6 long temp;
7 long count = 0;
8
9 for(i = 0;i < 99999;i++)
10 {
11 temp = i;
12 do
13 {
14 if(temp % 10 == 4)
15 {
16 count++;
17 break;
18 }
19 temp = temp / 10;
20 }while(temp > 0);
21 }
22 count = 100000 - count;
23 printf("count = %ld\n",count);
24 }
结果:59049