试求出所有三位阶乘和数:m=a!+b!+c!(其中a为百位数字,b为十位数字,c为个位数字。约定0!=1,并输出所有的m)
时间: 2023-05-31 14:18:04 浏览: 306
### 回答1:
所有三位阶乘和数为:
1、145 = 1! + 4! + 5!
2、40585 = 4! + ! + 5!
3、40586 = 4! + ! + 5!
4、145152 = 1! + 4! + 5!
5、145153 = 1! + 4! + 5!
6、405837 = 4! + ! + 5!
7、453601 = 4! + 5! + 3!
8、453602 = 4! + 5! + 3!
9、1080891 = 1! + ! + 8!
10、1080892 = 1! + ! + 8!
11、1106561 = 1! + 1! + 6!
12、1106562 = 1! + 1! + 6!
13、1107569 = 1! + 1! + 7!
14、110757 = 1! + 1! + 7!
15、1478561 = 1! + 4! + 7!
16、1478562 = 1! + 4! + 7!
17、4037927 = 4! + ! + 3!
18、4037928 = 4! + ! + 3!
19、4038961 = 4! + ! + 4!
20、4038962 = 4! + ! + 4!
21、1089361 = 1! + ! + 8!
22、1089362 = 1! + ! + 8!
23、1090561 = 1! + ! + 9!
24、1090562 = 1! + ! + 9!
25、1108321 = 1! + 1! + 8!
26、1108322 = 1! + 1! + 8!
27、1109521 = 1! + 1! + 9!
28、1109522 = 1! + 1! + 9!
29、1478961 = 1! + 4! + 7!
30、1478962 = 1! + 4! + 7!
31、4039217 = 4! + ! + 3!
32、4039218 = 4! + ! + 3!
33、4039361 = 4! + ! + 4!
34、4039362 = 4! + ! + 4!
35、1089611 = 1! + ! + 8!
36、1089612 = 1! + ! + 8!
37、1090811 = 1! + ! + 9!
38、1090812 = 1! + ! + 9!
39、1108561 = 1! + 1! + 8!
40、1108562 = 1! + 1! + 8!
41、1109761 = 1! + 1! + 9!
42、1109762 = 1! + 1! + 9!
43、1479361 = 1! + 4! + 7!
44、1479362 = 1! + 4! + 7!
45、4039427 = 4! + ! + 3!
46、4039428 = 4! + ! + 3!
47、4039561 = 4! + ! + 4!
48、4039562 = 4! + ! + 4!
49、1089711 = 1! + ! + 8!
50、1089712 = 1! + ! + 8!
51、1090911 = 1! + ! + 9!
52、1090912 = 1! + ! + 9!
53、1108661 = 1! + 1! + 8!
54、1108662 = 1! + 1! + 8!
55、1109861 = 1! + 1! + 9!
56、1109862 = 1! + 1! + 9!
57、1479761 = 1! + 4! + 7!
58、1479762 = 1! + 4! + 7!
59、4039617 = 4! + ! + 3!
60、4039618 = 4! + ! + 3!
61、4039761 = 4! + ! + 4!
62、4039762 = 4! + ! + 4!
63、1089811 = 1! + ! + 8!
64、1089812 = 1! + ! + 8!
65、1091011 = 1! + ! + 9!
66、1091012 = 1! + ! + 9!
67、1108761 = 1! + 1! + 8!
68、1108762 = 1! + 1! + 8!
69、1109961 = 1! + 1! + 9!
70、1109962 = 1! + 1! + 9!
71、1479961 = 1! + 4! + 7!
72、1479962 = 1! + 4! + 7!
73、4039817 = 4! + ! + 3!
74、4039818 = 4! + ! + 3!
75、4039961 = 4! + ! + 4!
76、4039962 = 4! + ! + 4!
### 回答2:
题目给出了三个数字的阶乘和m=a!b!c!,我们可以先尝试枚举百位、十位、个位数字来求得所有可能的结果。
同样的,我们可以利用循环来确定百位、十位、个位数字,一次循环内依次获取到对应的数字并计算出其阶乘。
假设三个数字分别为a、b、c,那么:
a = i / 100 // i为枚举中的数
b = i % 100 / 10
c = i % 10
由于0!=1,我们需要单独处理a、b、c等于0的情况(这些情况在计算阶乘时特判)。
阶乘计算边界条件:
0! = 1
n! = n * (n-1)!
由于输入的数是三位数,所以我们只需要在1000以内的所有数中枚举即可,最终得到所有的三位阶乘和数如下:
1、2、3、4、5、6、7、8、9、145、405、5625、1458、745、4536、81、648、720、5841、1729、2385、2178、8892、2025、46368、57122
共计23个。
### 回答3:
首先,我们需要了解三位数中最大的阶乘值为6! = 720。考虑到3! = 6,所以在计算三位数的阶乘和时,可以从6开始,一直往下计算,直到计算到1!为止。
令a为百位数字,b为十位数字,c为个位数字。因为每个数字只有一位,且阶乘函数的值随着输入的数字的增加而迅速增长,所以我们可以用一个三重循环来枚举a、b、c可能的取值。
具体地,我们可以将a从1~9枚举,每枚举一个a,就将b从0~9枚举,再将c从0~9枚举,这样就可以得到所有的三位数了。然后,我们可以分别计算a!、b!、c!,并将它们相乘得到m = a! b! c!。
为了避免重复计算,我们可以将阶乘值保存在一个数组中,每次需要计算时直接调用即可。
至此,我们便得到了所有的三位阶乘和数,即:
145
40585
1451520
1618480
1146819840
1152468480
1366878944
20422789120
21149199360
21341245600
其中,145是特殊的三位阶乘和数,它的每个数字的阶乘值恰好等于它本身。其它的九个三位阶乘和数则都可以通过三重循环枚举得到。