include <stdio.h> long jc (int num); long jc2 (int num); int main() { long n; n = jc(5); printf("%d", n); // n = jc2(5); // printf("%d", n); } /** * for迴圈 */ long jc (int num) { long j = 1, i; for (i = 1; i <= num; i++){ j *= i; //一直乘以步長+1的數,直到自增到引數 } return j; } /**遞迴 * 5! = 1 * 2 * 3 * 4 * 5; * 4! = 1 * 2 * 3 * 4; * 3! = 1 * 2 * 3; * 2! = 1 * 2; * 1! = 1; **/ long jc2 (int num) { long j; //printf("%d", num); if (num > 1) { //printf("%d", num); j = jc2(num - 1) * num; //如果要求5的階乘,那麼先求出比5小1的階乘以5。 } else { //printf("%d", num); j = 1; } return j; }