Çözüldü C# nasıl çıktı bulunur?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

GamerPro0

Centipat
Katılım
3 Ekim 2021
Mesajlar
141
Makaleler
1
Daha fazla  
Cinsiyet
Erkek
İyi akşamlar yarın sınava gireceğim. C# yazılım dilinden çıktı bulma ile ilgili soru çıkacakmış fakat ben daha yeni başladım C#'ye, nasıl bulabilirim bu sorunun cevabını çözümüyle yazabilir misiniz?

76C9E83B-2E0F-4713-9A1E-FC7309F70D53.jpeg
 
Son düzenleyen: Moderatör:
Çözüm
Fonksiyon ilk çağrıldığında y 10 değeri if koşulunu karşılamadığı için alttaki üç tane daha f(y/3) fonksiyonu çağrılır bunların her biri de 10/3=3 (int için) if(y==1) koşulunu karşılamıyor ve bunlar da 3'er tane f(y/3) fonksiyonu çağırıyor artık burada 3/3 if koşu karşılandığı için tekrar fonksiyon çağrılmıyor ve sonuç olarak her bir fonksiyon 27 döndürüyor 27*27*27 den en son fonksiyon 19683 döndürüyor. f(x, y/3)*f(x, y/3)*f(x, y/3);

Adsız.png
bu soru direkt olarak matematiksel olduğu için printf içerisinde ki 3 ve 10 u yerlerine koyarak sonuca ulaşabilirsin. Algoritma gerektiren bir soru degil.
 
Recursive bir fonksiyon olduğu için stack gibi nerede kaldığınızı tutarak dallanma yapmanız lazım. Yerine koydum tek seferde çıktı diye bir şey yok. f içerisinde f o da duruma göre tekrar f'i çağırıyor.

Bu arada sorudaki dil C# değil C.
 
Recursive bir fonksiyon olduğu için stack gibi nerede kaldığınızı tutarak dallanma yapmanız lazım. Yerine koydum tek seferde çıktı diye bir şey yok. F içerisinde F o da duruma göre tekrar F'i çağırıyor.

Bu arada sorudaki dil C# değil C.

Ne yalan söyleyeyim hiçbir şey anlamadım lütfen biraz daha açabilir misiniz?
 
Fonksiyon ilk çağrıldığında y 10 değeri if koşulunu karşılamadığı için alttaki üç tane daha f(y/3) fonksiyonu çağrılır bunların her biri de 10/3=3 (int için) if(y==1) koşulunu karşılamıyor ve bunlar da 3'er tane f(y/3) fonksiyonu çağırıyor artık burada 3/3 if koşu karşılandığı için tekrar fonksiyon çağrılmıyor ve sonuç olarak her bir fonksiyon 27 döndürüyor 27*27*27 den en son fonksiyon 19683 döndürüyor. f(x, y/3)*f(x, y/3)*f(x, y/3);

Adsız.png
 
Çözüm
Fonksiyon ilk çağrıldığında y 10 değeri if koşulunu karşılamadığı için alttaki üç tane daha f(y/3) fonksiyonu çağrılır bunların her biri de 10/3=3 (int için) if(y==1) koşulunu karşılamıyor ve bunlar da 3'er tane f(y/3) fonksiyonu çağırıyor artık burada 3/3 if koşu karşılandığı için tekrar fonksiyon çağrılmıyor ve sonuç olarak her bir fonksiyon 27 döndürüyor 27*27*27'den en son fonksiyon 19683 döndürüyor. f(x, y/3)*f(x, y/3)*f(x, y/3);

Eki Görüntüle 1220206

En açıklayıcı cevabı verdiğin için teşekkürler.
 

Yeni konular

Geri
Yukarı