#include int gcd(int a, int b, int level); int main() { int n1, n2; printf("\n*** 求二數的最大公因數 ***\n\n請輸入兩個正整數 ==> "); scanf("%d %d",&n1,&n2); printf("\n輸入的二個正整數分別是%d與%d,遞迴呼叫層級及回傳值如下...\n\n",n1,n2); gcd(n1,n2,0); printf("\n"); return 0; } int gcd(int a, int b, int level) { int i, result; level++; for (i = 1; i < level; i++) printf("\t"); if (b == 0) { printf("gcd(%d,%d) = %d [解*]\n",a,b,a); return(a); } else { printf("gcd(%d,%d)\n",a,b); result = gcd(b,a%b,level); for (i = 1; i < level; i++) printf("\t"); printf("gcd(%d,%d) = %d\n",a,b,result); return(result); } }