lostyazilim
tr.link

bu çıktının mantığını kısaca anlatacak olan?

3 Mesajlar 864 Okunma
acebozum
tr.link

Proyazar Proyazar WM Aracı Kullanıcı
  • Üyelik 18.10.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilgisayar Programcısı
  • Konum İstanbul Avrupa
  • Ad Soyad M** T**
  • Mesajlar 83
  • Beğeniler 36 / 31
  • Ticaret 2, (%100)
package javaapplication10;
public class JavaApplication10 {
private static int islem_1(int sayi)
{
if (sayi == 2)
return 2;

if (islem_2(sayi))
return sayi + islem_1(sayi-1);

else
return islem_1(sayi-1);
}

private static boolean islem_2(int sayi)
{
for (int i = 2; i if (sayi % i == 0)
return false;
return true;
}
public static void main(String[] args) {
System.out.println(islem_1(5));
}
}


bu çıktı sorusunun mantığını kısaca anlatabilecek var mıdır? fazla detaya inmenize gerek yok ancak mantığını bir türlü kavrayamadım..

şimdiden teşekkürler
 

 

elektronikssl
webimgo

MOmerAlpi MOmerAlpi WM Aracı Kullanıcı
  • Üyelik 22.04.2014
  • Yaş/Cinsiyet 25 / E
  • Meslek Arayüz Geliştirici
  • Konum İstanbul Avrupa
  • Ad Soyad M** A**
  • Mesajlar 306
  • Beğeniler 76 / 67
  • Ticaret 26, (%100)
Java hayatımda hiç kullanmadım ama: (java mı onuda bilmiyorum)

Öncelikle islem_2 ne yapıyor onu bilmek gerek.
islem_2(5) ile ne oluyor..
2,3,4 e kadar gelip her sayının 2 ile modunu alıyor.
2 % 2 = 0 olduğundan false
3 % 2 = 1 olduğundan true
4 % 2 = 0 olduğundan false

Şimdi geçelim diğer kodlara.

1. islem_1(5) fonksiyonunu çalıştır
2. islem_2(5) fonksiyonu true ise 5 + islem_1(4) yazdır. islem_1(4) çalıştır.
3. islem_2(4) fonksiyonu true ise 4 + islem_1(3) yazdır. islem_1(3) çalıştır.
4. islem_2(3) fonksiyonu true ise 3 + islem_1(2) yazdır. islem_1(2) çalıştır. zaten kodlarda sayi = 2 ise direk 2 yazdır var.
vs.vs. uzar gider. Bunların birde false ı var.
Biraz abarttım tabii.. Beynimde yandı..
Proyazar

kişi bu mesajı beğendi.

Proyazar Proyazar WM Aracı Kullanıcı
  • Üyelik 18.10.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Bilgisayar Programcısı
  • Konum İstanbul Avrupa
  • Ad Soyad M** T**
  • Mesajlar 83
  • Beğeniler 36 / 31
  • Ticaret 2, (%100)

MOmerAlpi adlı üyeden alıntı

Java hayatımda hiç kullanmadım ama: (java mı onuda bilmiyorum)

Öncelikle islem_2 ne yapıyor onu bilmek gerek.
islem_2(5) ile ne oluyor..
2,3,4 e kadar gelip her sayının 2 ile modunu alıyor.
2 % 2 = 0 olduğundan false
3 % 2 = 1 olduğundan true
4 % 2 = 0 olduğundan false

Şimdi geçelim diğer kodlara.

1. islem_1(5) fonksiyonunu çalıştır
2. islem_2(5) fonksiyonu true ise 5 + islem_1(4) yazdır. islem_1(4) çalıştır.
3. islem_2(4) fonksiyonu true ise 4 + islem_1(3) yazdır. islem_1(3) çalıştır.
4. islem_2(3) fonksiyonu true ise 3 + islem_1(2) yazdır. islem_1(2) çalıştır. zaten kodlarda sayi = 2 ise direk 2 yazdır var.
vs.vs. uzar gider. Bunların birde false ı var.
Biraz abarttım tabii.. Beynimde yandı..


hocam cevabınız için çok teşekkür ederim. cevap çıktı sorusu olduğundan 10 imiş.. biraz beyin yakıcı sanırsam
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al