習題4 6 水仙花數

2021-10-10 13:24:15 字數 827 閱讀 2770

題目描述:

水仙花數是指乙個n位正整數(n≥3),它的每個位上的數字的n次冪之和等於它本身。例如:153=1​3​​+5​3​​+3​3​​。 本題要求編寫程式,計算所有n位水仙花數。

輸入格式:

輸入在一行中給出乙個正整數n(3≤n≤7)。

輸出格式:

按遞增順序輸出所有n位水仙花數,每個數字佔一行。

—————————————————————————————

超時原因:

在pta中執行超時是因為使用了自帶的庫,執行速度較慢,這裡自行定義乙個power()函式即可(定義為pow()可能會有警告)

重點(自己跌的坑):

主要思路是將利用窮舉法測試每個數字,提取出測試數字的每個位數的n次方相加,看是否等於原數字

提取數字末位方法:除10取餘

去掉末位方法:除10取商

注意一定要在每次遍歷時重置結果值r和遍歷數字num

自行定義power()函式以提高效率

#include

intpower

(int a,

int n)

;int

main()

if(r == i)

}return0;

}int

power

(int a,

int n)

//定義power函式!不超時的關鍵所在!

return r;

}

習題4 6 水仙花數

水仙花數是指乙個n位正整數 n 3 它的每個位上的數字的n次冪之和等於它本身。例如 153 153 13 5 3 3 3 本題要求編寫程式,計算所有n位水仙花數。輸入格式 輸入在一行中給出乙個正整數n 3 n 7 輸出格式 按遞增順序輸出所有n位水仙花數,每個數字佔一行。3153 370371 40...

習題4 6 水仙花數

水仙花數是指乙個n位正整數 n 3 它的每個位上的數字的n次冪之和等於它本身。例如 153 1 5 3 本題要求編寫程式,計算所有n位水仙花數 輸入在一行中給出乙個正整數n 3 n 7 按遞增順序輸出所有n位水仙花數,每個數字佔一行。153370 371407 輸入幾就是幾位數我們可以用pow 10...

習題4 6 水仙花數

習題4 6 水仙花數 20分 水仙花數是指乙個n位正整數 n 3 它的每個位上的數字的n次冪之和等於它本身。例如 153 1 3 5 3 3 3 本題要求編寫程式,計算所有n位水仙花數。輸入在一行中給出乙個正整數n 3 n 7 按遞增順序輸出所有n位水仙花數,每個數字佔一行。3153 370371 ...