輸出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方合等於該數本身。例如,153是水仙花數,因爲153=1的三次方+5的三次方+3的三次方。
以153爲例。利用取餘的思想我們先將153/10取餘得到3,再將3做三次方;將153/10得到15再將15/10取餘得到5,再將5做三次方;將15/10得到1,將1做三次方。將三位數的三次方相加,順序即爲3的三次方+5的三次方+1的三次方=153本身,判斷後即爲水仙花數,返回、輸出、打印。
我們可以利用布爾類型直接判斷真假,即真值返回。
#include <iostream>
//水仙花數
bool IsFlower(int n)//true是 false否
{
int a;//保存個位數字
int sum =0;
int tmp =n;//定義臨時變量保存n的值
while(n!=0)
{
a=n%10;//得到個位數字
sum+=a*a*a;//a的三次方
n/= 10;//丟掉個位數字
}
return sum ==tmp;
}
int main()
{
for(int i =100;i<=1000;i++)//三位數
{
if(IsFlower(i))
{
printf("%d\n",i);
}
}
}
輸出結果:
即“水仙花數”有153、370、371、407
源代碼:
#include
//水仙花數
bool IsFlower(int n)//true是 false否
{
int a;//保存個位數字
int sum =0;
int tmp =n;//定義臨時變量保存n的值
while(n!=0)
{
a=n%10;//得到個位數字
sum+=aaa;//a的三次方
n/= 10;//丟掉個位數字
}
return sum ==tmp;
}
int main()
{
for(int i =100;i<=1000;i++)//三位數
{
if(IsFlower(i))
{
printf("%d\n",i);
}
}
}