HDU2212 DFS【水题】【打表】
2015-01-30 22:09
399 查看
DFS
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5692 Accepted Submission(s): 3520
Problem Description
A DFS(digital factorial sum) number is found by summing the factorial of every digit of a positive integer.
For example ,consider the positive integer 145 = 1!+4!+5!, so it's a DFS number.
Now you should find out all the DFS numbers in the range of int( [1, 2147483647] ).
There is no input for this problem. Output all the DFS numbers in increasing order. The first 2 lines of the output are shown below.
Input
no input
Output
Output all the DFS number in increasing order.
Sample Output
1
2
......
Author
zjt
题目大意:求范围 [1, 2147483647] 内,各个位上数字的阶乘和等于其本身的数。
思路:先写一个程序,计算 [1, 2147483647] 上,每个数的各个位上数字的阶乘和,
找到等于其本身的数,将其输出出来,然后打表就可以了。
//计算程序
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int jc(int N)
{
int num = 1;
for(int i = 1; i <= N; ++i)
num *= i;
return num;
}
int main()
{
for(int i = 1; i <= 2147483647; ++i)
{
int num = i,sum = 0;
while(num)
{
sum += jc(num%10);
num /= 10;
}
if(sum == i)
cout << i << " ";
}
return 0;
}
打表程序:
#include<iostream>
using namespace std;
int main()
{
cout << 1 << endl;
cout << 2 << endl;
cout << 145 << endl;
cout << 40585 << endl;
return 0;
}
Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5692 Accepted Submission(s): 3520
Problem Description
A DFS(digital factorial sum) number is found by summing the factorial of every digit of a positive integer.
For example ,consider the positive integer 145 = 1!+4!+5!, so it's a DFS number.
Now you should find out all the DFS numbers in the range of int( [1, 2147483647] ).
There is no input for this problem. Output all the DFS numbers in increasing order. The first 2 lines of the output are shown below.
Input
no input
Output
Output all the DFS number in increasing order.
Sample Output
1
2
......
Author
zjt
题目大意:求范围 [1, 2147483647] 内,各个位上数字的阶乘和等于其本身的数。
思路:先写一个程序,计算 [1, 2147483647] 上,每个数的各个位上数字的阶乘和,
找到等于其本身的数,将其输出出来,然后打表就可以了。
//计算程序
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int jc(int N)
{
int num = 1;
for(int i = 1; i <= N; ++i)
num *= i;
return num;
}
int main()
{
for(int i = 1; i <= 2147483647; ++i)
{
int num = i,sum = 0;
while(num)
{
sum += jc(num%10);
num /= 10;
}
if(sum == i)
cout << i << " ";
}
return 0;
}
打表程序:
#include<iostream>
using namespace std;
int main()
{
cout << 1 << endl;
cout << 2 << endl;
cout << 145 << endl;
cout << 40585 << endl;
return 0;
}
相关文章推荐
- Hdu2212 dfs (搜索&剪枝or打表)
- HDU2212 DFS 【水题】
- 1021/ Fibonacci Again 同余运算关系 + 打表 水题
- POJ 2739 Sum of Consecutive Prime Numbers(素数打表水题)
- hdu2102 (dfs)搜索水题
- HDU 1331--Function Run Fun【水题】【打表】
- BZOJ_P1503&Codevs_P2912 [HAOI2007]反素数ant(打表+DFS)
- ZOJ3861 Valid Pattern Lock(DFS||打表+枚举)
- hdu 2161 Primes(数学:素数打表+水题)
- DFS 水题 Help Dexter
- 第五道(DFS)水题!装载问题
- POJ 2531 Network Saboteur (dfs+水题)
- hdu2510 dfs打表
- nyoj 491 幸运三角形 【DFS】+【打表】
- poj 2034(dfs。。。居然别一个水题卡住了)
- HDU 2089 不要62 --- 水题+打表
- Lake Counting DFS水题
- Friends number (筛法打表求因子,水题)
- poj 1753 Flip Game(搜索:DFS+水题)
- hdu2510 符号三角形(dfs+打表) 解题报告