求這樣一個三位數,該三位數等於其每位數字的階乘之和
阿新 • • 發佈:2018-12-31
根據題目,即求abc=a!+b!+c!
下面我們設計演算法:
設三位數為n,取出每一位數分別放在a、b、c中
通過定義形參,求每位數的階乘,通過函式返回值返回
主函式中,呼叫返回值,每一位的階乘相加與該三位數比較,相等時,列印結果。
執行結果:#include <stdio.h> int fun(int i); int main() { int n, a, b, c; printf("The number satisfied condition:\n"); for (n = 100; n < 1000; n++) { a = n / 100; /*分別取出三位數的百位,十位和各位*/ b = (n / 10) % 10; c = n % 10; if (n == fun(a) + fun(b) + fun(c)) /*判斷符合條件,輸出結果*/ { printf("%4d = %d! + %d! + %d!\n",n,a,b,c); } } return 0; } int fun(int i) { int n = 1; int s = 1; while (n <= i) /*求階乘的演算法*/ { s *= n; n += 1; } return s; /*返回所求的階乘值*/ }