Maths et Programmation (Dev C++) - C++ - Programmation
Marsh Posté le 22-06-2006 à 20:28:28
ReplyMarsh Posté le 22-06-2006 à 20:48:12
jusqu'a 43 (ou 41 en partant de 1 si les entiers doivent etre non nul)
Marsh Posté le 22-06-2006 à 21:25:59
J'allais le dire. Passer par l'ordinateur ne dispense pas d'un minimum d'analyse.
Si a+b+c=43, aucun des entiers naturels a, b, ou c ne peut être supérieur à 43.
Ensuite, en posant c = 43 - (a+b), il n'y a besoin de faire que 2 boucles.
Et encore, elles sont largement réduites par la condition que a + b <= 43.
Un algo serait donc, à vue de nez:
Pour a = 0 .. 43
Pour b = 0 ... 43 - a
c = 43 - (a+b)
Si a^3 + b^3 + c^3 == 17299
Affiche a, b, c
qui donne le résultat immédiatement.
Question: Combien y'a-t'il de solutions ? Obtient-on toutes les solutions par cette méthode (modulo les permutations évidentes de a, b, c) ?
Marsh Posté le 23-06-2006 à 16:34:18
el muchacho a écrit : J'allais le dire. Passer par l'ordinateur ne dispense pas d'un minimum d'analyse. |
Je ne peux que plussoyer !
el muchacho a écrit : Question: Combien y'a-t'il de solutions ? Obtient-on toutes les solutions par cette méthode (modulo les permutations évidentes de a, b, c) ? |
On peut aussi éviter les permutations de a et b avec un algo du genre :
pour d = 0..42 (d = a+b) |
Avec un peu plus de travail, je pense qu'on devrait pouvoir éviter *toutes* les permutations.
Marsh Posté le 23-06-2006 à 16:36:48
benitoelputoamo a écrit : Merci, j'ai remplacé <= par <<, mais le programme ne m'affiche toujours rien... |
rassure moi, tu voulais bien dire l'inverse ?
c'est << qu'il faut remplacer par <=
Marsh Posté le 24-06-2006 à 19:46:54
ReplyMarsh Posté le 25-06-2006 à 12:23:07
benitoelputoamo a écrit : Merci. Je n 'ai pas l'habitude d'utiliser "for"... |
for (initialisation; test; incrément) |
Est presque équivalent mais beaucoup plus pratique que
initialisation |
Avec un peu d'expèrience, cela viendra tout seul...
Marsh Posté le 25-06-2006 à 13:08:37
7, 11 et 25
Code :
|
arache coded
Marsh Posté le 22-06-2006 à 20:17:33
Bonjour,
Voilà j'ai un problème de mathématiques que je n'arrive pas à résoudre. J'ai donc décidé d'utiliser un programme en C++. Alors, voilà l'énoncé :
N.B. : a^3 signifie "a au cube"
"Soit trois entiers naturels a,b,c tels que a+b+c=43 et que a^3+b^3+c^3=17299.
Mon problème est de faire trois boucles :
Pendant (a<=50){
Pendant (b<=50){
Pendant (c<=50){
Si (a+b+c==43){
Si (a*a*a+b*b*b+c*c*c=17299){
Afficheràl'Ecran a,b,c
}
}
}
}
}
Le problème, c'est que quand je compile, le programme ne me retourne aucune réponse...
Qu'est-ce qui cloche dans mon code source?
Merci d'avance,
Benoît