循环-11. 水仙花数*

 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
",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

原文地址:https://www.cnblogs.com/boomkeeper/p/C11.html