对水仙花数的描述
水仙花数:指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
例如:1^3 + 5^3+ 3^3 = 153。
代码思想
①要让这个程序循环100000次来判断是否为水仙花数,所以要用到for循环;
②判断是几位数;
③依次把该数每个位分离,然后相加。
运行代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//定义pow函数用<math.h>
#include<math.h>
int main()
{
int i = 0;
//循环100000次
for (i = 0; i <=100000; i++)
{
//n判断是几位数
int n = 1;
int sum = 0;
int tmp = i;
while (tmp /= 10)
{
n++;
}
//n=3
tmp = i;
while (tmp)
{
sum += (int)pow(tmp % 10, n);
tmp /= 10;
}
if (sum == i)
{
printf(" %d", i);
}
}
printf("\n");
printf("these are water flower");
getchar();
return 0;
}
注意
pow()函数:pow() 函数用来求 x 的 y 次幂(次方),x、y及函数值都是double型 ,其原型为: double pow(double x, double y);
pow()函数的头文件: #include <math.h>