题目要求
设计一个程序,输出1000以内的所有水仙花数,所谓水仙花数是一个三位数,其各位数字的立方和等于该数本身。
例如:153=1^3+5^3+3^3
题目分析
输入:无,遍历1000以内的数;
输出::水仙花数;
运算:
1.遍历所有数的范围为100-1000;
通过for循环设置范围实现
2.分离各自位上的数字;
百位:三位数整除100;
十位:取余100,除10;
个位:取余10;
3.通过if来条件判断满足条件的数。
效果
代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void main()
{
int i, a, b, c;
for (i = 100; i < 1000; i++)
{
a = i / 100; //得到百位上的数
b = i % 100 / 10; //得到十位上的数
c = i %10; //得到个位上的数
if (i == pow(a, 3) + pow(b, 3) + pow(c, 3))//条件判断
{
printf("水仙花是:%d\n", i);
}
}
system("pause");
}