Şimdi Ara

Verilen sayının toplayanlarını bulma algoritmansı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
453
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar merhaba bir program yazmam gerekiyor ancak algoritmayı oluştururken zorlandım bu yüzden size danışıyorum. Programda istenen şey kullanıcıdan girilen sayının toplayanlarını bulma. Mesela kullanıcı 7 girdiyse ekrana 7,6 1, 5 2, 5 1 1, 4 2 1,3 3 1 gibi tüm toplayabilecek şekillerde yazsın. Bunun algoritmasını kuramadım. Yardım olursanız sevinirim.



  • 2 icin 1 1.
    Ondan sonraki her sayi icin recursive bir sekilde 2 ye ulasincaya dek n + 1 seklinde yazip icerigini doldurabilirsin. Sonra da merge. Pseudo kod mu, yoksa bir dilde implement mi edeceksiniz?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Sıkıntı şu ki iki sayının toplamı şeklinde yazmaması lazım sadece. Mesela kullanıcı 11 girerse ekrana 11 tane 1 basmalı, 5 5 1 basmalı, 9 tane 1 sonra 2 basmalı yani iş karışıyor iyice. C için yazmaya çalışıyorum kodu ama pseudo da işimi görür elbet. Algoritmayı kurabilsem kod kısmında sıkıntı olmayacak.
  • Internette buldum sorunun çözümunü fakat biraz karışık gelebilir daha basit olması için kodu baya uzatmak gerekebilir

    Bu adresten ulaşabilirsin



    http://stackoverflow.com/questions/10738926/efficient-algorithm-to-find-a-combination-which-summation-is-equal-to-a-known-n

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • int x,y,z;
    for(x=0; x<=7; x++)
    for(y=0; y<=7; y++)
    for(z=0; z<=7; z++)
    if(x+y+z==7)
    {
    cout<<x<<y<<z<<endl;
    }


    tabi bu aynı toplaynları bıdaha yazıyor her değişken için onları da bi şekilde silersin.
  • For(x=0; x<=7; x++){

    For(y=7; x>=0; x--) {

    if(x+y == 7) YAZ X,Y
    if(x == TAMSAYI(7/2) && Y == TAMSAYI (7/2) BREAK;
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi someonewhoaintbelongshere -- 27 Haziran 2014; 16:10:52 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.