题目大意:
求出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;
}