Şimdi Ara

C++ döngü sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
412
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Ödevim ,
    a,b,c ve d en fazla en olan doğal sayılar olmak üzere a*a + b*b = c*c + d*d eşitliğini sağlayan tüm a,b,c,d sayılarını ve kaç tane olduğunu bulan programı en fazla üç döngü(for ,while ,do while veya goto) kullanarak yazınız.

    Sıkıntım ise sadece 1 adet bu eşitliği sağlayan sayılar bulunuyor ve program bitiyor.
    Programı eke koyuyorum yardımcı olursanız sevinirim...
     C++ döngü sorunu C++ döngü sorunu







  • a, b, c ve d en fazla en mi olan?
    3 döngü ile yapmak için biraz matematik kullanabilirsin, şöyle;
    a b ve c doğal sayılar kadar (veya int sınırına kadar) arttırırsın,
    sonunda şöyle bir denkelemin olur;
    a2 + b2 = c2 + d2
    a b c yi bildiğin için;
    d2 = a2+b2-c2
    burdan d'nin doğal sayı olup olmadığını çıkartırsın, doğal sayıysa print edersin.
    Daha da matematik kasarak döngülerinin sınırlarını da düşürebilirsin, örneğin a ile b int sınırına kadar gidecek (o şart aslında), ama c'nin gitmesine gerek yok, şöyle ki;
    a 5 b 4 ken mesela kareleri toplamı 25 + 16'dan 41 eder, 41'in karekökün'ün - sonsuza yuvarlanmış haline kadar götürsen yeter c'yi.
    örnek for;
    for (int a = 1; a < INTMAX; a++) 
    {
    for (int b = 1; b < INTMAX; b++)
    {
    akareartibkare = a*a+b*b;
    for (int c = 1; c < floor(sqrt(akareartibkare)); c++)
    {
    akabkeck = sqrt(akareartibkare - c*c) ;
    if (akabkeck == round(akabkeck))
    {
    //a, b ve c normal a b ve c. d ise akabkeck olmak üzere çıktı ver
    }
    }
    }
    }




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.