/*** 這版本只改了最後那個函數fact(), 改用recursive(遞迴)方式 ***/ #include #include #define repeat do{ #define until(e) }while(!(e)) long fact(long n); /*算 n 階乘, 阿就是1乘2乘...乘到n啦 */ int main() { long x; /* 不叫 n 也沒關係啦 */ repeat cout <<" N=? "; cin >> x; /* 輸入資料到變數 x */ cout<< "N!==" << fact(x) << endl; until(x==0); /* 做到 0階乘後就不玩了 :-) */ return 0; } long fact(long n) { if(n<1) return 1; return n * fact(n-1); }