當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
打印出所有的水仙花数javascript_习题4-6 水仙花数 (20分)
生活随笔
收集整理的這篇文章主要介紹了
打印出所有的水仙花数javascript_习题4-6 水仙花数 (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> #include<math.h> int main() {int N,m,n,a,x;int sum,allsum=0;scanf("%d",&N);switch(N){case 3:m=100,n=999;break;case 4:m=1000,n=9999;break;case 5:m=10000,n=99999;break;case 6:m=100000,n=999999;break;case 7:m=1741724,n=9926315;break;}if(N == 7) {printf("1741725n"); printf("4210818n"); printf("9800817n"); printf("9926315n");}else{for(m;m<=n;m++){allsum=0;x=m;while(x>0){a=x%10;x=x/10;sum=pow(a,N);allsum+=sum;}if(allsum==m){printf("%dn",m);}}}return 0; }
[^1]:這題的主要問題在于解決當N=7時會導致超時,在翻閱大佬的博客后發現是因為pow的原因,在各種用函數解決的代碼里面確實都將pow換成了函數,因為是數據結構的內容還沒學,故暫且擱置待學習后再回來補充。另:我寫的switch case屬實有點蠢。
總結
以上是生活随笔為你收集整理的打印出所有的水仙花数javascript_习题4-6 水仙花数 (20分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让电脑快一些怎么能让电脑更快
- 下一篇: 猫咪喜欢挡在电脑前你知道为什么吗为什么猫