J'ai créé un programme qui renvoie le produit b c où a, b, c sont des triplets pythagoriciens et totalisent 1000. Le programme affiche la bonne réponse mais le fait deux fois. J'étais curieux de savoir pourquoi c'est ainsi. Après avoir joué avec un peu j'ai découvert qu'il imprime quand a = 200 b = 375 c = 425. Et encore une fois quand a = 375 b = 200 c = 425.Pourquoi la réponse est-elle imprimée deux fois?
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;
}
Pour mettre votre code dans un bloc de code, vous indentez tout 4 espaces. Le bouton 101010 fait cela pour vous - collez le code, puis sélectionnez-le et cliquez sur le bouton 101010. –
... mettre la "brute" en "force brute" ...;) – msw
Si votre problème n'était pas déjà résolu en nettoyant votre code et en ajustant vos limites de boucle, ce serait en fait un très bon endroit pour jaser les merveilles de la déclaration «goto» mal comprise. Si ce n'était pas pour les différentes corrections suggérées ici, sortir des boucles multi-imbriquées est un excellent endroit pour utiliser 'goto' dans des langages comme C ou C++. –