我做了一個程序,返回產品a b c其中a,b,c是畢達哥拉斯三元組並加起來爲1000.程序確實輸出了正確的答案但是做了兩次。我很好奇這是爲什麼。玩弄它之後有點我發現它打印出來當a = 200 B = 375 C = 425,並再次α= 375 B = 200 C = 425爲什麼打印出來的答案是兩次?
bool isPythagTriple(int a, int b, int c);
int main()
{
for(int a = 1; a < 1000; a++)
{
for(int b = 1; b < 1000; b++)
{
for(int c = 1; c < 1000; c++)
{
if(((a+b+c)==1000) && isPythagTriple(a,b,c))
{
cout << a*b*c << " ";
break;
}
}
}
}
return 0;
}
bool isPythagTriple(int a, int b, int c)
{
if((a*a)+(b*b)-(c*c) == 0)
return true;
else
return false;
}
把你的代碼到一個代碼塊,你縮進一切4個空格。 101010按鈕可以幫你完成 - 粘貼代碼,然後選擇它並點擊101010按鈕。 – 2010-05-10 03:30:24
...將「蠻力」變成「蠻力」...;) – msw 2010-05-10 03:38:32
如果你的問題還沒有通過清理你的代碼和調整你的循環邊界來解決,這實際上是一個非常好的地方被誤解的「goto」聲明的奇蹟。如果不是針對這裏提出的各種修復方法,那麼突破多重嵌套循環是在像C或C++這樣的語言中使用'goto'的好地方。 – 2010-05-10 06:03:08