Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C tìm UCLN bằng hàm đệ quy

Đề 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