HDU2122

打表找范围!

View Code
 1 #include<stdio.h>

 2 int fac[ 12 ];

 3 void init(){

 4     fac[ 0 ]=1;

 5     fac[ 1 ]=1;

 6     fac[ 2 ]=2;

 7     for( int i=3;i<=9;i++ ){

 8         fac[ i ]=fac[ i-1 ]*i;

 9     }

10 }

11 void init2(){

12     init();

13     printf("1\n2\n");

14     for( int i=145;i<=50000;i++ ){

15         int sum=0;

16         int now=i;

17         while( 1 ){

18             sum+=(fac[ now%10 ]),now/=10;

19             if( now==0 )

20                 break;

21         }

22         if( sum==i )

23             printf("%d\n",i);

24     }

25 }

26 int main(){

27     init2();

28     //printf("end\n");

29     return 0;

30 }

 

你可能感兴趣的:(HDU)