日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【中学】寻找阿姆斯特朗数

發(fā)布時(shí)間:2023/12/2 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【中学】寻找阿姆斯特朗数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【中學(xué)】尋找阿姆斯特朗數(shù)

請編寫一個(gè)程序?qū)ふ乙环N特殊整數(shù):一個(gè) n 位的正整數(shù)等于其各位數(shù)字的n次方之和。

輸入:

正整數(shù)的位數(shù)n(n<=6)。

輸出:

所有此n位特殊數(shù)。每個(gè)數(shù)占一行。若不存在符合條件的特殊數(shù),則輸出提示:“No output.”;若存在,則從小到大進(jìn)行輸出。

樣例:

序號測試輸入期待的輸出額外進(jìn)程
13?153?
370?
371?
407?
0
22?No output.?0

思路

通過循環(huán)平判斷每個(gè)范圍內(nèi)的數(shù)字是否為阿姆斯特朗數(shù)
因?yàn)閚<=6,所以無論n是多少都當(dāng)做n=6處理就可以了,比如 12345 的第一位是12345/100000=0

代碼

#include <stdio.h> #include <math.h> int main() { int n,a,b,c,d,e,f,g,i,j=0; scanf("%d",&n); a=pow(10,n); for(i=pow(10,n-1);i<a;i++) { b=i/100000; c=(i%100000)/10000; d=(i%10000)/1000; e=(i%1000)/100; f=(i%100)/10; g=i%10; if((pow(b,n)+pow(c,n)+pow(d,n)+pow(e,n)+pow(f,n)+pow(g,n))==i&&i>=a/10) { printf("%d\n",i); j++; } } if(j==0) { printf("No output.\n"); } return 0; }

課外思考

如果位數(shù)更多呢,比如n<=10?
可不可以用別的方法,不那么臃腫的方法?
事實(shí)上我們可以用兩個(gè)循環(huán)加一個(gè)存儲(chǔ)結(jié)果的變量all解決這個(gè)問題
同學(xué)們可以自己試試,如果想不出來可以參考n位正整數(shù)的個(gè)數(shù)

總結(jié)

以上是生活随笔為你收集整理的【中学】寻找阿姆斯特朗数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。