1. 程式人生 > 其它 >實驗4-2-5 水仙花數 (20分)

實驗4-2-5 水仙花數 (20分)

技術標籤:浙大版《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; }