C語言求水仙花數
阿新 • • 發佈:2019-01-03
題目描述:
“水仙花數”是指一個三位數,它的各位數字的立方和等於其本身,比如:153=13+53+3^3。 現在要求輸出所有在m和n範圍內的水仙花數。
輸入描述
輸入資料有多組,每組佔一行,包括兩個整數m和n(100 ≤ m ≤ n ≤ 999)。
輸出描述
對於每個測試例項,要求輸出所有在給定範圍內的水仙花數,就是說,輸出的水仙花數必須大於等於m,並且小於等於n,如果有多個,則要求從小到大排列在一行內輸出,之間用一個空格隔開;
如果給定的範圍內不存在水仙花數,則輸出no;
每個測試例項的輸出佔一行。
測試程式碼如下
#include <stdio.h> int main() { int start, end, i = 0, a, b, c, size = 0; while (scanf("%d %d", &start, &end) == 2) { for (i = start; i <= end; i++) { a = i / 100; b = i / 10 % 10; c = i % 10; //total = pow(c, 3) + pow(a, 3) + pow(b, 3); if ((a*a*a + b*b*b + c*c*c) == i) //滿足水仙花條件 { if (size == 0) //size=0輸出第一個水仙花數 { printf("%d", i); } else //size++輸出第二。。第n個水仙花數 { printf(" %d", i); } size++; //個數++; } } if (size == 0) //範圍內個數為0,則說明沒有滿足條件的 { printf("no"); } printf("\n"); } return 0; }