求n位數中有哪些水仙花數
阿新 • • 發佈:2021-06-11
水仙花數是指一個N位正整數(N>=3),它的每個位上的數字的N次冪之和等於它本身。
例如:
153 = 1^3 + 5^3+ 3^3.
1634 = 1^4 + 6^4 + 3^4 + 4^4.
要求計算所有N位水仙花數,n由自己輸入,按從小到大的順序輸出水仙花數, 每個數一行;最後輸出一個整數, 代表水仙花數的個數.
輸入樣例 1
3
輸出樣例 1
153
370
371
407
4
c++程式碼如下
#include<iostream> using std::cin; using std::cout; using std::endl; bool IsNarcissisticNumber(int num, int n) { int s = num, t = 0; while (num) { int temp = 1; for (int i = 0; i < n; i++) { temp *= (num % 10); } t += temp; num /= 10; } return t == s; } int main() { int n, max=1, min=1, count=0; cin >> n; for (int i = 1; i < n; i++) { min *= 10; } max = min * 10; for (int i = min; i < max; i++) { if (IsNarcissisticNumber(i, n)) { cout << i << endl; count++; } } cout << count << endl; return 0; }