C,
pasted
on Jul 17:
|
#include <stdio.h>
int gcd(int fa , int fb);
static int count = 0;
int main() {
int a, b, g;
printf("input two integer \n");
printf("number 1: ");
scanf("%d", &a);
printf("number 2: ");
scanf("%d", &b);
g = gcd(a, b);
printf("gcd(%d, %d) is %d\n",a, b, g);
printf("calling: %d times\n", count);
return 0;
}
int gcd(int fa, int fb) {
count++;
printf("calling gcd() No.%d, a = %d, b = %d\n", count, fa, fb);
if (fb == 0)
return fa;
return gcd(fb, fa % fb);
}
/* end */
|
Output:
|
input two integer
number 1: number 2: calling gcd() No.1, a = 134513601, b = -1085860024
calling gcd() No.2, a = -1085860024, b = 134513601
calling gcd() No.3, a = 134513601, b = -9751216
calling gcd() No.4, a = -9751216, b = 7747793
calling gcd() No.5, a = 7747793, b = -2003423
calling gcd() No.6, a = -2003423, b = 1737524
calling gcd() No.7, a = 1737524, b = -265899
calling gcd() No.8, a = -265899, b = 142130
calling gcd() No.9, a = 142130, b = -123769
calling gcd() No.10, a = -123769, b = 18361
calling gcd() No.11, a = 18361, b = -13603
calling gcd() No.12, a = -13603, b = 4758
calling gcd() No.13, a = 4758, b = -4087
calling gcd() No.14, a = -4087, b = 671
calling gcd() No.15, a = 671, b = -61
calling gcd() No.16, a = -61, b = 0
gcd(134513601, -1085860024) is -61
calling: 16 times
|
|