मैं Project Euler पर समस्या 9 को हल कर रहा हूं। मेरे समाधान में मैं लूप के लिए दो में से बाहर निकलने के लिए "गोटो" कथन का उपयोग करता हूं। समस्या यह है:गोटो को दो लूपों से बाहर निकलने का एक वैध तरीका उपयोग कर रहा है?
एक पाइथागोरस त्रिक तीन प्राकृतिक संख्या, का एक सेट है एबीसी, जो,
एक^2 + b^2 = ग^2
उदाहरण के लिए के लिए, 3^2 + 4^2 = 9 + 16 = 25 = 52.
बिल्कुल एक पायथागोरियन ट्रिपलेट मौजूद है जिसके लिए एक + बी + सी = 1000. उत्पाद एबीसी खोजें।
मेरे समाधान C++ है:
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;
के बाद से "गोटो" बयान C++ प्रोग्रामर के बीच बहुत लोकप्रिय नहीं हैं, मैं इस "गोटो" का एक उचित उपयोग पर विचार किया जा सकता है अगर, जानना चाहते हैं । या यदि समस्या के लिए एक बेहतर समाधान है जिसे "गोटो" की आवश्यकता नहीं है। इसके द्वारा मेरा मतलब यह नहीं है कि एक समाधान जो "गेटो" से बचाता है, लेकिन जो एल्गोरिदम को सुधारने के तरीके में "गोटो" से बचाता है।
मैं उन 8-स्पेस टैब से प्यार करता हूं जिनका आप उपयोग कर रहे हैं .... बहुत सेक्सी। –
धन्यवाद, मुझे भी उन्हें पसंद है :-) – Lucas
मध्य में 16-स्पेस टैब के साथ ... –