PAT:4-1. 水仙花數(20)
阿新 • • 發佈:2019-02-20
水仙花數是指一個N位正整數(N>=3),它的每個位上的數字的N次冪之和等於它本身。例 如:153 = 13 + 53+ 33。 本題要求編寫程式,計算所有N位水仙花數。
輸入格式:
輸入在一行中給出一個正整數N(3<=N<=7)。
輸出格式:
按遞增順序輸出所有N位水仙花數,每個數字佔一行。
輸入樣例:3輸出樣例:
153 370 371 407
#include <stdio.h> int main(void) { int i, j, n, low = 1, high, temp, sum, item, remainder; scanf("%d", &n); for(i = 1; i < n; ++i){ low *= 10; } high = low * 10; for(i = low; i < high; ++i) { temp = i; sum = 0; while(temp > 0) { remainder = temp % 10; item = remainder; for(j = 1; j < n; ++j){ item *= remainder; } sum += item; temp /= 10; } if(i == sum) printf("%d\n", i); } return 0; }