题目大意:
求出1到2147483647,中每位的阶乘的和等于该数的数。
如1!+4!+5!=145
打表AC:
求出1到2147483647,中每位的阶乘的和等于该数的数。
如1!+4!+5!=145
解析:水题,直接求解+打表。
#include <cstdio>
#include <cstring>
using namespace std;
const int MAX = 2147483647;
int fun(int n) {
int sum = 1;
for(int i = 1; i <= n; i++) {
sum *= i;
}
return sum;
}
bool judge(int n) {
int tmp = n;
int sum = 0;
while(n) {
sum += fun(n % 10);
n /= 10;
}
if(sum == tmp) {
return true;
}else {
return false;
}
}
int main() {
for(int i = 1; i < MAX; i++) {
if(judge(i)) {
printf("%d\n",i);
}
}
return 0;
}打表AC:
#include <cstdio>
#include <cstring>
using namespace std;
int main() {
printf("1\n2\n145\n40585\n");
return 0;
}
本文介绍了一道编程题目,即找出所有1至2147483647范围内,其各位数字的阶乘之和等于该数本身的数字。通过直接计算和打表的方式,给出了完整的C++实现代码。
378

被折叠的 条评论
为什么被折叠?



