一、什么是水仙花数:
水仙花数被称为超完全数字不变数,也就是指三位数中,他的每一位(百位、十位、个位)数字的三次幂之和等于他本身。
例如:1*1*1+5*5*5+3*3*3=153。
二、设计思路:
1.可以利用循环将100-999之间的数字寻找一遍。
2.
2.1将个个位数求三次幂之和与组合起来的数字进行比较;
2.2将100-999之间的数字进行拆分,再求和比较;
三、代码实现:
3.1利用思路2.1求解:
#include<stdio.h>
int main()
{
int a,b,c,num1,num2;//百位:a; 十位:b; 个位:c;
//num1: 每一位三次幂之和; num2:水仙花数
for(a=1;a<=9;a++)//百位循环
{
for(b=0;b<=9;b++)//十位循环
{
for(c=0;c<=9;c++)//个位循环
{
num1=a*a*a+b*b*b+c*c*c;
num2=a*100+b*10+c;
if(num1==num2)//判断是否为水仙花数
{
printf("%d\t",num2);
}
}
}
}
return 0;
}
3.2 利用思路2.2求解:
#include<stdio.h>
int main()
{
int a,b,c,num;
for(num=100;num<1000;num++)
{
a=num/100;//取得数字的百位
b=num/10%10;//取得数字的十位
c=num%10;//取得数字的个位
if(num==a*a*a+b*b*b+c*c*c)//条件比较
{
printf("%d\t",num);//输出
}
}
return 0;
}