Ö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.
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 } } } }
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...
< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.