C Programlama Dili Recursive Bölme İşlemi (Çıkartma İşlemi ile) Örneği
C Programlama Dili Recursive Bölme İşlemi (Çıkartma İşlemi ile) Örneği kodunu bulabilirsiniz.
Bu kodda toplamda 4 kontrol vardır.
- Eğer payda (y) 0 girildi ise tanımsız olacağından ilk return 0 dönderiyor.
- İkinci return ise x-y == 0 şartını kontrol etmektedir. Eğer sonuç 0 ise x%y = 0 olmaktadır. Bu sonuçta değer 1 artmakta.
- Üçüncü return ise x%y!=0 zamanında son çıkarma işleminde sonuçlanacaktır ve 0 değeri dönderecektir.
- Dördüncü return ise recursive’in olduğu alan:
Bölme işlemini recursive olarak şu şekilde yapmaktayız: Örn (12/4):
12-4 = 8 (Son return işlemine girer 1 + bolmeIslemi(8,4) değeri dönderir)
8 – 4 = 4 (Son return işlemine girer 1 + bolmeIslemi 4,4) değeri dönderir)
4 – 4 = 0 (İkinci return işlemine girer ve 1 dönderir ve işlem biter)
Stack’in son durumu şu şekildedir.
bolmeIslemi(4,4) = 1 |
bolmeIslemi(8,4) = 1 + bolmeIslemi(4,4) |
bolmeIslemi(12-4) = 1 + bolmeIslemi(8,4) |
İşlem yukarıdan aşağı olarak ileryecek ve yerine koyma işlemi yaparak değeri bolmeIslemi(12-4)=3 bulacağız.
Recursive Bölme İşlemi (Çıkartma İşlemi ile) Örneği:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <stdio.h> int bolmeIslemi(int x, int y); int main() { int sayi1 = 30; int sayi2 = 5; int sonuc = bolmeIslemi(sayi1, sayi2); printf("%d / %d = %d\n", sayi1, sayi2, sonuc); return 0; } int bolmeIslemi(int x, int y) { if (y == 0) return 0; if (x - y == 0) return 1; if (x < y) return 0; return (1 + bolmeIslemi(x - y, y)); } |
Çıktı:
30 / 5 = 6 |
Leave a reply
Lütfen yorum için giriş yap ve yakayıt ol Teşekkürler .