c语言,水仙花数是指一个N位正整数(N>=3),它每个位上的数字的N次幂之和等于它本身,例如:153=1^3+5^3+3^3本题要求编写程序,计算所有N位水仙花数.输入格式:输入在一行中给出一个正整数N(3
c语言,水仙花数是指一个N位正整数(N>=3),它每个位上的数字的N次幂之和等于它本身,例如:153=1^3+5^3+3^3
本题要求编写程序,计算所有N位水仙花数.
输入格式:
输入在一行中给出一个正整数N(3
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
\x09double N; //把N从int型定义成double型,因为pow()函数不支持int类型,当然,N是int型也可以,用的时候强制转换也行,但是太烦.
\x09int a,t;
\x09int i=0,s=0;
\x09scanf("%lf",&N); //N是double型了,那么赋值就要用%lf啦
\x09a=pow(10,N-1);
\x09t=a;
\x09while(N>=3&&N<=7){
\x09\x09while(pow(10,N-1)<=a&&pow(10,N)>=a){
\x09\x09\x09t=a;
\x09\x09\x09while(i<N){
\x09\x09\x09\x09s=s+pow(t%10,N);
\x09\x09\x09\x09t/=10;
\x09\x09\x09\x09i++;
\x09\x09\x09}
\x09\x09\x09i=0;
\x09\x09\x09if(a==s){
\x09\x09\x09\x09printf("%d\n",a);
\x09\x09\x09}
\x09\x09\x09a++;
\x09\x09\x09s=0;
\x09\x09}
\x09\x09break; //在这边添加一个break,不然你是退不出去的,陷入了死循环
\x09}
\x09system("pause");
\x09return 0;
}