HDU 2212 DFS 水题
一开始被数据规模下到了,后来看了别人的思路,恍然大悟,可以先写普通的程序将每个数打印出来,最后再打表输出。
View Code
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 int fan(int n) 5 { 6 int i,ans=1; 7 for(i=1; i<=n; i++) 8 { 9 ans = ans*i; 10 } 11 return ans; 12 } 13 14 int main() 15 { 16 int i,j,ncases,t,m,n; 17 int sum; 18 19 for(i=1; i<=2147483647; i++) 20 { 21 t=i; sum = 0; 22 while( t ) 23 { 24 n = t%10; 25 m = t/10; 26 t = m; 27 sum += fan(n); 28 } 29 if(sum == i) 30 printf("%d\n",sum); 31 } 32 //system("pause"); 33 return 0; 34 }
输出结果发现只有四个数1 2 145 40585
接下来很显然直接输出就可以了。
View Code
1 #include<stdio.h> 2 3 int main() 4 { 5 int i,a[4]={1,2,145,40585}; 6 for(i=0; i<4; i++) 7 printf("%d\n",a[i]); 8 return 0; 9 } 10 此题方法很巧妙啊!