TÜBİTAK – 2023 Bilim Olimpiyatları – Bilgisayar – A Kitapçığı – Soru 43

C Programlama Tübitak - Bilim Olimpiyat Soruları Yazılım

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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir