答: 對于這題,首先要明白水仙花數(shù)的概念,它首先是一個三位數(shù),其次個位、十位和百位的三次冪相加之和等于它本身。因此根據(jù)這個思路編寫以下代碼。
東阿網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
對應的運行結(jié)果如下所示。注意水仙花數(shù)只有4個。
def demo():
temp = []
for i in range(100, 1000):
? a = i // 100 # 百位
? b = i // 10 % 10 # 十位
? c = i % 10 # 個位
? if a ** 3 + b ** 3 + c ** 3 == i:
? ? ? temp.append(str(i))
return ",".join(temp)
print("1000以內(nèi)的水仙花數(shù)有:{}".format(demo()))
用C語言實現(xiàn)水仙花數(shù):
#include stdio.h
#include stdlib.h
int main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n1000;n++)
{
? i=n/100;/*分解出百位*/
? j=n/10%10;/*分解出十位*/
? k=n%10;/*分解出個位*/
? if(n==i*i*i+j*j*j+k*k*k)
? {
? ? ? printf("%-5d",n);
? }
}
printf("\n");
return 0;
}
答: 首先要明白水仙花數(shù)的定義,它是指一個三位數(shù),它的每個位上的數(shù)字的三次冪之和等于它本身。所以問題就轉(zhuǎn)化為我們?nèi)绾螌⑷粩?shù)的個位、十位和百位都表示出來。然后再遍歷100~999的每一個數(shù)字去判斷其是否為水仙花數(shù)。具體代碼如下所示。
最終的運行結(jié)果如下,水仙花數(shù)總共有4個,具體如圖片所示。