Besoin d'aide pour un algorithme , urgent :)
Sweet..l0la
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Donc voilà , j'essaie de résoudre un exercice pendant maintenant 4 jours mais en vain , j'avance très lentement et c'est pour samedi , a ce rythme j'y arriverais pas :/
Voilà l'exercice :
" On remarque que 12x42=21x24
Il y a 14 produits qui vérifie cette propriété :
(10a+b)(10c+d)=(10b+a)(10d+c) où a<>b et c<>d
Le programme doit trouver ces 14 produits qui vérifie cette propriété sans redondance ."
J'ai besoin de votre aide s'il vous plait ,
Merci d'avance :)
Donc voilà , j'essaie de résoudre un exercice pendant maintenant 4 jours mais en vain , j'avance très lentement et c'est pour samedi , a ce rythme j'y arriverais pas :/
Voilà l'exercice :
" On remarque que 12x42=21x24
Il y a 14 produits qui vérifie cette propriété :
(10a+b)(10c+d)=(10b+a)(10d+c) où a<>b et c<>d
Le programme doit trouver ces 14 produits qui vérifie cette propriété sans redondance ."
J'ai besoin de votre aide s'il vous plait ,
Merci d'avance :)
A voir également:
- Besoin d'aide pour un algorithme , urgent :)
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
5 réponses
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.
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
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.
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#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.