适合新手,注解很详细哦~~~
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,n,min,max;
scanf("%d",&n); //n是位数
min = pow(10,n-1); //min为起始
max = pow(10,n); //max为终止
//for循环 :遍历
for(i = min;i<max;i++)
{
int sum = 0; //sum定义在for循环内部,确保每次循环开始时sum=0
//若定义在for循环外部,则需要每轮循环结束后将sum赋值为0
int t = i; //t为临时变量,记录i的值(i后续会被分解)
while(t>0)
{
int remain = t % 10;//remain用来记录末位数字
sum += pow(remain,n);
t = t / 10;
}
if(sum == i) //判断是否满足水仙花数条件
{
printf("%d是水仙花数\n",i);
}
}
return 0;
}