水仙花数,水仙花数简单来说就是个位,十位,百位的三个数字的立方和如果等于该数本身,那么该数就是水仙花数。
例如:153
153 = 1 + 125 + 27 153是水仙花数。
那么如何用C语言来求100到1000之间所有的水仙花数呢?
我们可以用到C中的一个重要的循环,for循环。
代码如下
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int i, j, k, n, sumi, sumj, sumk;//定义7个整型数据
for (n = 100; n < 1000; n++) //输出100到1000之间的所有数字
{
i = n / 100; //求百位的数
j = n / 10 % 10; //求十位的数
k = n % 10; //求个位的数
sumi = i * i * i; //百位数立方和
sumj = j * j * j; //十位数立方和
sumk = k * k * k;//个位数立方和
if (n == sumi + sumj + sumk) //满足水仙花数的条件
{
printf("%-5d", n);
}
}
printf("\n");//换行
return 0;
}
运行结果如下
利用for循环,我们可以高效的解决这个问题!
感谢阅读,如有问题请指正。