C Programlama Dili Recursive OBEB (Ortak Katların En Büyüğü) Örneği kodunu bulabilirsiniz.
Ortak katların en büyüğü değerini recursive olarak iki farklı şekilde bulabilirsiniz. Öncelikle OBEB(48,180) işlemi nasıl yapılır ona bakalım;
48 = 2 × 2 × 2 × 2 × 3
180 = 2 × 2 × 3 × 3 × 5
48 ve 180’nin ortak bölenlerine baktığımızda 2 x 2 x 3 olduğunu görüyoruz ve sonucunun 12 olması gerekiyor.
Recursive OBEB (Ortak Katların En Büyüğü) Örneği 1:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <stdio.h>
int obeb(int, int);
int main() {
int sayi1 = 48;
int sayi2 = 180;
int sonuc = obeb(sayi1, sayi2);
printf("obeb(%d,%d) = %d\n", sayi1, sayi2, sonuc);
return 0;
}
int obeb(int x, int y) {
if (y == 0)
return x;
return obeb(y, x % y);
}
|
Çıktı:
obeb(48,180) = 12 |
Recursive OBEB (Ortak Katların En Büyüğü) Örneği 2:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <stdio.h>
int obeb(int, int);
int main() {
int sayi1 = 180;
int sayi2 = 48;
int sonuc = obeb(sayi1, sayi2);
printf("obeb(%d,%d) = %d\n", sayi1, sayi2, sonuc);
return 0;
}
int obeb(int x, int y) {
if (x == y)
return x;
if (x > y)
return obeb(x - y, y);
return obeb(x, y - x);
}
|
Çıktı:
obeb(180,48) = 12 |