Soru : Aşağıdaki fonksiyon foo(10); ile çağrılırsa hangi değeri döner?
#include<stdio.h>
int foo(int n)
{
if (n != 0)
if (n%2==0)
return n + foo(n-1);
else
return n - foo(n-1);
else
return n;
}
main()
{
printf("Sonuc = %d",foo(10));
}
Cevap : Fonksiyon her seferinde n değerini 1 azaltmaktadır. Eğer n çift ise n + foo (n-1) dönmekte, tek ise n + foo (n-1) dönmektedir. 10’dan itibaren sırayla fonksiyon çalıştırıldığında 11 sonucu elde edilir.