using System;
class Faktor
{
static int Faktoriyel(int a)
{
if(a==0)
return 1;
return a* Faktoriyel(a-1);
}
static void Main()
{
Console.WriteLine(Faktoriyel(0));
Console.WriteLine(Faktoriyel(1));
Console.WriteLine(Faktoriyel(4));
}
}
Yukarıdaki faktoriyel metodunun 4 değeri için nasıl çalıştığını inceleyelim:
-Faktoriyel(4); ifadesi ile bellekte akış faktoriyel() metoduna gelir.4 sayısı 1 yada 0 a eşit olmadığı için ikinci return ifadesi olan
return a * Faktoriyel (a-1);
ifadesi ile geri dönülür.Yani şu anda elimizde
4* Faktoriyel(3)
tamsayi değeri bulunmaktadır.Bu deyimde henüz işleme sokulmayan bir metot çağrımı daha mevcut. Ayrı bir bellek bölgesinde Faktoriyel(3) değeri hesaplanır. yine aynı şekilde
Faktoriyel(3) ifadesinden 3*Faktoriyel(2) ifadesi elde edilir. Şu an hesapladığımız toplam ifade
4 * 3 * Faktoriyel(2)
Faktoriyel(2) ifadesinide aynı şekilde hesapladığımızda elimizdeki son ifade
4 * 3 *2 * Faktoriyel(1)
olur.
Şimdi sıra geldi son ifadesnin yani Faktoriyel(1)'in hesaplanmasına : metot içerisinde a'nın sıfır olması durumunda
return 1;
deyimi ile 1 değerine geri dönülmektedir.Sonuç olarak elde edeceğimiz son ifade aşağıdaki gibi olacaktır
4*3*2*1=24
Hiç yorum yok:
Yorum Gönder