1 /* 2 * Main.c 3 * C11-循環-11. 水仙花數 4 * Created on: 2014年7月30日 5 * Author: Boomkeeper 6 ******部分通過******** 7 */ 8 9 #include <stdio.h> 10 #include <math.h> 11 12 int N;//同題目中的N 13 14 void isNarcissus(int i){ 15 unsigned int sum=0; 16 int tem=i; 17 //將i各位拆分並計算其N次冪之和 18 do{ 19 sum+=pow(i%10,N); 20 i=i/10; 21 }while(i!=0); 22 //如果該N位數各位的N次冪之和等於該數本身,則為水仙花數 23 if(sum==tem) 24 printf("%d\n",tem); 25 } 26 27 28 int main(void){ 29 30 scanf("%i",&N); 31 32 int i; 33 for(i=pow(10,N-1);i<pow(10,N);i++) 34 isNarcissus(i); 35 36 return 0; 37 }
又沒能完全通過...桑心了...
經檢查,輸入6或者7的時候,返回結果很慢,我會優化算法,回頭補上!
題目鏈接:
http://pat.zju.edu.cn/contests/basic-programming/%E5%BE%AA%E7%8E%AF-11
,
,