porkapetan
Messages postés2Date d'inscriptionlundi 16 février 2004StatutMembreDernière intervention19 février 2004
-
16 févr. 2004 à 08:27
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
16 févr. 2004 à 11:35
salut
en fait je bloque sur un programme
je prends deux nombres de trois chiffres
et je les additionne et les multiplie
je dois ensuite verifier si le resultat de l'addition es l'inverse du resultat de la multiplication ou vice versa.
les chiffres sont pri de facon aleatoire par l'ordi
j'ai fais un prog mais je n'arrive pas a l'optimiser
je l'ai fais en java je le changerais en c++ ensuite car c presque identique
si il y a des candidats merci
import java.io.*;
public class nombrePalindrome {
public static void Calcule()
{
int [] A = new int [999];
int [] B = new int [999];
int [] tabMult= new int [100];
int [] tabAdd = new int [100];
int MultM,MultR,longAdd,longMult;
int AddM, AddR;
int Add,Mult=0,k=0,m=0,n,p,longeur=0;
boolean resultat;
for (int i=0 ; i<999 ;i ++)
{
for (int j=0 ; j<999 ;j ++)
{
AddR=1;
MultR=1;
Add = i+j;
Mult = i*j;
n=0;
p=0;
longMult = 0;
longAdd = 0;
resultat = false;
while(AddR>0)
{
AddM = (Add % 10);
AddR = (Add / 10);
Add = AddR;
tabAdd[n]= AddM;
//System.out.print("" + tabAdd[n]);
n++;
longAdd++;
}
while (MultR>0)
{
MultM = (Mult % 10);
MultR = (Mult / 10);
Mult = MultR;
tabMult [p]= MultM;
p++;
longMult ++;
}
if ( longMult==longAdd)
{
resultat=compare (tabAdd,tabMult,longMult);
longMult = 0;
longAdd = 0;
}
if (resultat == true)
{
A[k++]=i;
B[m++]=j;
System.out.println("Resulat i:" + i);
System.out.println("Resulat j:" + j);
}
}// fin for2
}// fin for1
}// fin fonction
public static boolean compare ( int [] tabAdd,int [] tabMult,int longeur){
int index=0;
while (index<longeur){
if (tabAdd[index]==tabMult[longeur-1 - index])
{
index++;
}else{
return false;
}
}// fin de While
return true;
}