一.题目大概:
输出所有的水仙花数,水仙花数是指一个三位数,它的每位上的数字的3次幂之和等于它本身。(如:1^3+5^3+3^3=153)
二.算法分析:
(1)水仙花数是一个三位数,所有设一个变量x从100开始,自加到999。
(2)取它的个位、十位、百位。通过一些降位、取余运算。
(3)再将它的个位、十位、百位这三个数字的3次幂之和求出,并与x进行判断,若相等则打印数字,反之继续自加。
三.程序代码:
#include<stdio.h>
int main()
{
int x;
int i,j,k;
for(x=100;x<1000;x++)
{
i=x%10;//获取个位数
j=(x/10)%10;//获取十位数
k=x/100;//获取百位数
if(i*i*i+j*j*j+k*k*k==x)
printf("%d ",x);
}
printf("\n");
return 0;
}