Besoin d'aide pour un algorithme , urgent :)
Fermé
Sweet..l0la
Messages postés
70
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 juillet 2013
-
29 sept. 2010 à 14:47
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 30 sept. 2010 à 14:47
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 30 sept. 2010 à 14:47
A voir également:
- Besoin d'aide pour un algorithme , urgent :)
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Code ascii algorithme - Guide
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Tester un algorithme en ligne - Forum Programmation
5 réponses
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
29 sept. 2010 à 14:59
29 sept. 2010 à 14:59
Ben tu fais une boucle sur tous les a, b, c, d possibles.
Tu calcules les résultats de la première partie de ton équation, et tu les mets dans un grand tableau (assez grand pour stoquer tous les résultats.
En parallèle tu calcules aussi la formule de la deuxième partie de l'équation.
ensuite tu compares et tu gères les cas qu'on ne veut pas...
je te laisse compléter et faire les détails.
Tu calcules les résultats de la première partie de ton équation, et tu les mets dans un grand tableau (assez grand pour stoquer tous les résultats.
En parallèle tu calcules aussi la formule de la deuxième partie de l'équation.
ensuite tu compares et tu gères les cas qu'on ne veut pas...
je te laisse compléter et faire les détails.
yuri648
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
30 sept. 2010 à 00:27
30 sept. 2010 à 00:27
peut etre il vous manque les donnés de l'exo a,b,cd doivent avoir les limite
Pacorabanix
Messages postés
3248
Date d'inscription
jeudi 23 août 2007
Statut
Membre
Dernière intervention
19 mai 2013
661
30 sept. 2010 à 00:49
30 sept. 2010 à 00:49
apparemment, c'est implicite que les nombres cherchés sont à deux chiffres. a, b, c, d représentent des chiffres de 0 à 9, et non n'importe quel entier.
yuri648
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
Modifié par yuri648 le 30/09/2010 à 14:40
Modifié par yuri648 le 30/09/2010 à 14:40
voila je l'ai tester sur java et sa marche tres bien
int i=1;
int a=1,b=1,c=1,d=1;
while((i<=14)&&(a<=9))
{
while((i<=14)&& (b<=9))
{
while((i<=14)&& (c<=9))
{
while((i<=14)&&(d<=9))
{
int y=(10*a+b)*(10*c+d);
int u=(int) ((10*b+a)*(10d+c));
if(y==u)
{i++;
System.out.println((10*a+b)+"*"+(10*c+d)+"="+(10*b+a)+"*"+(10d+c));
}
d++;
}
c++;d=1;
}
b++;c=1;d=1;
}
a++;b=1;c=1;d=1;
}
}
resultat:
11*11=11*11.0
12*21=21*12.0
13*31=31*13.0
14*41=41*14.0
15*51=51*15.0
16*61=61*16.0
17*71=71*17.0
18*81=81*18.0
19*91=91*19.0
22*11=22*11.0
24*21=42*12.0
26*31=62*13.0
28*41=82*14.0
33*11=33*11.0
bon courage
int i=1;
int a=1,b=1,c=1,d=1;
while((i<=14)&&(a<=9))
{
while((i<=14)&& (b<=9))
{
while((i<=14)&& (c<=9))
{
while((i<=14)&&(d<=9))
{
int y=(10*a+b)*(10*c+d);
int u=(int) ((10*b+a)*(10d+c));
if(y==u)
{i++;
System.out.println((10*a+b)+"*"+(10*c+d)+"="+(10*b+a)+"*"+(10d+c));
}
d++;
}
c++;d=1;
}
b++;c=1;d=1;
}
a++;b=1;c=1;d=1;
}
}
resultat:
11*11=11*11.0
12*21=21*12.0
13*31=31*13.0
14*41=41*14.0
15*51=51*15.0
16*61=61*16.0
17*71=71*17.0
18*81=81*18.0
19*91=91*19.0
22*11=22*11.0
24*21=42*12.0
26*31=62*13.0
28*41=82*14.0
33*11=33*11.0
bon courage
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
30 sept. 2010 à 14:25
30 sept. 2010 à 14:25
Mouai.
heureusement que tu sais qu'il n'y en a que 14.
Ensuite, il est facile de trouver 13*31=31*13, c'est évidant, on peu en trouver plein des comme ça. Font il parti de la sélection ?
pourquoi ton algorithme ne sort pas 22×22 et 19×91 ? Je pense qu'il y a un problème avec les 9
Je pense qu'il faut être plus rusé que ça.
heureusement que tu sais qu'il n'y en a que 14.
Ensuite, il est facile de trouver 13*31=31*13, c'est évidant, on peu en trouver plein des comme ça. Font il parti de la sélection ?
pourquoi ton algorithme ne sort pas 22×22 et 19×91 ? Je pense qu'il y a un problème avec les 9
Je pense qu'il faut être plus rusé que ça.
yuri648
Messages postés
677
Date d'inscription
mardi 30 décembre 2008
Statut
Membre
Dernière intervention
20 mai 2015
7
30 sept. 2010 à 14:42
30 sept. 2010 à 14:42
oui c'est vrai c'est une erreur j'ai pas fait attention a,b,c,d doivent etre <= 9
donc c bon j'ai rectifié l'algo
merci Char Snipeur
donc c bon j'ai rectifié l'algo
merci Char Snipeur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
30 sept. 2010 à 14:47
30 sept. 2010 à 14:47
#include <iostream> std::ostream &cout=std::cout; int main() { int n=0; for(int a=1;a<6;++a)// rien ne sert au dela de 5 on retrouvera à droite. for(int b=1;b<10;++b) for(int c=1;c<10;++c) for(int d=1;d<10;++d) { if((a==d)&&(b==c))continue;// on saut les inversions de multiplication if((a==b)&&(c==d))continue;// suppression de aa*cc==aa*cc if((a*10+b)*(c*10+d)==(b*10+a)*(d*10+c)) { cout<<(a*10+b)<<"x"<<(c*10+d)<<"=="<<(b*10+a)<<"x"<<(d*10+c)<<"\n"; ++n; } } cout<<n<<" resultats\n"; std::cin>>n; return 0; }
37 résultats, beaucoup en double à supprimer, mais je n'ai pas trouvé comment. Maintenant à toi de réfléchir aux condions double pour ajuster les bornes.