Project Euler numaralı sorunu çözüyorum. Benim çözümümde, iki döngüden kurtulmak için bir "goto" ifadesi kullanıyorum. Sorun şudur:İki döngüden çıkmak için goto meşru bir yol kullanıyor mu?
bir Pisagor üçlü üç doğal sayılar, bir dizi abc
Örneğin bir^2 + b^2 = C^2
, bunun için, 3^2 + 4^2 = 9 + 16 = 25 = 52 =
Tam olarak, bir + b + c = 1000 olan bir Pisagor üçlüsü vardır. Ürünü bulun abc.
Çözümümün ++ c şudur: Bu "git" makul kullanımını kabul edilip edilemeyeceğini "git" ifadeleri yana
int a,b,c;
const int sum = 1000;
int result = -1;
for (a = 1; a<sum; a++){
for (b = 1; b < sum; b++){
c = sum-a-b;
if (a*a+b*b == c*c){
result = a*b*c;
goto found;
}
}
}
found:
std::cout << "a:" << a << std::endl;
std::cout << "b:" << b << std::endl;
std::cout << "c:" << c << std::endl;
std::cout <<"Result:" << result << std::endl;
++ programcıları c arasında çok popüler değil, ben bilmek istiyorum . Ya da "goto" gerektirmeyen problem için daha iyi bir çözüm varsa. Bununla, "goto" dan kaçınan, ama algoritmayı geliştirecek şekilde "goto" dan kaçınan bir çözüm demek istemiyorum.
Kullandığınız 8-alanlı sekmeleri seviyorum .... çok seksi. –
Teşekkürler, ben de onları seviyorum :-) – Lucas
Ortada 16-alan bir sekme ile ... –