话不多说,看代码,都有注释,简单易懂
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
//找出三位数中的水仙花数
int main()
{
int i = 0;
int sum = 0;
int ret = 0;
for (i = 100; i <= 999; i++)
{
//这里用sum来接受i的值,尽量避免在循环里改变i的值,每次重新循环的时候要重新把ret的值赋为0,要不ret的值就会一直累计,导致程序错误;
ret = 0;
sum = i;
while (sum)
{
//当sum/10 == 0时退出循环
ret += pow(sum % 10, 3);//这里用了库函数pow,次方函数,这里的三就是三次方的意思,要引用头文件#include<math.h>
//得到这个数的每一位
sum /= 10;
}
if (ret == i)
{
printf("%d ", ret);
}
}
return 0;
}
这里运用了库函数,当然也可以用得到的每一位乘三次即可