Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Inmultirea numerelor mari in java  (Citit de 1262 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
rosper
Strain


Karma: -1
Deconectat Deconectat

Mesaje: 2



Vezi Profilul
« : Martie 14, 2010, 21:35:25 »

Am si eu o problema cu inmultirea unor numere mari in java,fara a folosi clasa BigInteger sau BigDecimal am facut o clasa asemanatoare si problema e ca la inmultire nu imi vede ultima valoare...aici sunt functiile :

Cod:
public static int[] add(int x[],int y[],int p)
{
int i,dep=0;
int[]m=new int[p+2];
for(i=p-1;i>=0;i--)
{
m[i+1]=(x[i]+y[i])%10+dep;
if ((x[i]+y[i])>9) dep=1;
else dep=0;
}
if(dep==1) m[0]=1;
else m[0]=0;
return m;

}
si

public static int[] inmultire(int x[],int y[],int n)
{
int [] z=new int [n+n+2];
int i,j,dep=0;
int nr[] = null;
for(i=n-1;i>=0;i--)
{
for(int k=0;k<n+n+2;k++)
z[k]=0;
for(j=n-1;j>=0;j--)
{
z[(n+j)-(n-1-i)+2]=(x[i]*y[j]+dep)%10;
dep=(x[i]*y[j]+dep)/10;
}
System.out.println("Numarul z este:");
for(int k=0;k<n+n+2;k++)
System.out.print(z[k]);
z[(n+j)-(n-1-i)+2]=dep;
if(i==n-1)
{
nr=add(zero(z, n+n+1),z,n+n+1);
}
else nr=add(nr,z,n+n+1);
System.out.println("Numarul in momentul actual este:");
for(int k=0;k<n+n+2;k++)
System.out.print(nr[k]);
System.out.println();
dep=0;
}
return nr;
}
astept orice idee ms Smile

Editat de admin: Foloseste tagul "code" cand postezi cod.
« Ultima modificare: Martie 14, 2010, 22:37:38 de către Andrei Grigorean » Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines