題目要求:
如果一個3位數等于其各位數字的立方和,則稱這個數為水仙花數。例如:407=43 03 73,因此407就是一個水仙花數。編寫一個程序,找出全部的水仙花數。
題目分析:
水仙花數是三位數,隻要應用窮舉法窮舉出100~999閉區間中的每一個數字(正整數),然後對每一個正整數進行判斷,看它是不是水仙花數,如果是水仙花數,則将該數輸出,如果不是水仙花數,則不輸出該數。
int IsNarcissus(int a);
void Narcissus();
void main()
{
printf("The Narcissus numbers below are\n");
Narcissus();
getche();
}
void Narcissus()
{ /*尋找100-999之間的水仙花數*/
int i;
for(i=100;i<=999;i )
if(IsNarcissus(i))
printf("%d ",i);
}
int IsNarcissus(int a)
{ /*判斷是否是水仙花數,是則返回1,不是返回0*/
int sum=0,tmp;
tmp=a;
while(tmp>0)
{
sum=sum (tmp)* (tmp)*(tmp);
tmp=tmp/10;
}
if(sum==a)
return 1; /*a 是水仙花數*/
else
return 0; /* a 不是水仙花數*/
}
運行結果:
運行結果
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!