實驗4-2-5 水仙花數 (20分)
阿新 • • 發佈:2021-02-03
技術標籤:浙大版《C語言程式設計實驗與習題指導(第3版)》題目集
實驗4-2-5 水仙花數 (20分)
水仙花數是指一個N位正整數(N≥3),它的每個位上的數字的N次冪之和等於它本身。例如:153=1 3 +5 3 +3 3
。 本題要求編寫程式,計算所有N位水仙花數。
輸入格式: 輸入在一行中給出一個正整數N(3≤N≤7)。
輸出格式: 按遞增順序輸出所有N位水仙花數,每個數字佔一行。
輸入樣例:
3
輸出樣例:
153
370
371
407
#include<stdio.h>
int main()
{
int x,s=1,i,a[ 10],cnt=0,t,j,sum,k,tmp;
scanf("%d",&x);
for(i=1;i<=x;i++)
s*=10;
for(i=s/10;i<=s;i++)//對該位所有數進行遍歷
{
cnt=0;
t=i;
sum=0;
while(t!=0)//將每一位輸入進陣列
{
a[cnt++]=t%10;
t/=10;
}
for(j=0;j<x;j++)
{ //此處不要使用pow函式,否則最後一個測試點會超時
tmp=a[j];
for(k=1;k<x;k++)
tmp*=a[j];
sum+=tmp;
}
if(sum==i)//如果符合條件就進行輸出
printf("%d\n",i);
}
return 0;
}