HDU 2212 DFS(水题)

来源:互联网 发布:找数据哪些网站好 编辑:程序博客网 时间:2024/04/30 03:20
题目大意:
求出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;  }  

0 0
原创粉丝点击