Data_Structure/Vorlesungen/DS/Beispiele/gcd-indent.c
2025-01-20 21:25:33 +08:00

37 lines
700 B
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <stdio.h>
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);
}
}