Đề bài
Tìm ước chung lớn nhất (UCLN/GCD) của hai số bằng hàm đệ quy.
Thuật toán đệ quy Euclid
GCD(i, j): if j > i return GCD(j, i) if j == 0 return i else return GCD(j, i % j)
Chương trình C
#include <stdio.h>
#include <math.h>
unsigned int GCD(unsigned i, unsigned j);
int main() {
int a, b;
printf("Nhập hai số nguyên:\n");
scanf("%d%d", &a, &b);
printf("UCLN của %d và %d là %d\n", a, b, GCD(a, b));
return 0;
}
unsigned int GCD(unsigned i, unsigned j) {
if (j > i)
return GCD(j, i);
if (j == 0)
return i;
else
return GCD(j, i % j);
}
Kết quả
Nhập hai số nguyên: 4 8 UCLN của 4 và 8 là 4