• Domingo 22 de Diciembre de 2024, 14:47

Autor Tema:  Suma De Dos Numeros De 40 Cifras  (Leído 4360 veces)

lumiere_87

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Suma De Dos Numeros De 40 Cifras
« en: Martes 11 de Septiembre de 2007, 01:25 »
0
Hola....estoy comenzando a programar en java y necesito hacer un programa en netbeans que sume dos numeros de 40 cifras.......tengo este codigo, pero no me da...y ya no se que hacer!!! AUXILIOOOOOOOOOOOOOOO!!!!!!!!!!!!!
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

jpaler

  • Miembro MUY activo
  • ***
  • Mensajes: 479
    • Ver Perfil
Re: Suma De Dos Numeros De 40 Cifras
« Respuesta #1 en: Miércoles 12 de Septiembre de 2007, 13:27 »
0
el procedimiento es sencillo, pues lo q debes hacer es intentar sumar digito contra digito como si estubieras haciendo una suma con lapiz y papel.

1. Pides los dos vectores los cuales contendran cada uno los 40 numeros.
2. Sumas el numero de la posicion i del v1 con la misma posicion del v2
3. Luego, si el resultado es <=9, simplemente lo almacenas en la misma posicion
... i pero de un nuevo vector, por ejemplo, vr. pero si el resultado >9 entonces,
... en vr solo almacenas el digito de la derecha, y el digito de la izquierda se lo
... deberas sumar ala proxima suma q realices ya con i+1.

Mira: Te voy a hacer un ejemplo con 5 digitos nada mas:

Código: Text
  1. v1 = [1,2,3,4,5]   tam=5
  2. v2 = [1,2,3,4,5]   tam=5
  3. vr = [0,0,0,0,0,0] tam=6
  4.  
  5. int r=0,acarreo=0;
  6. for(int i=4; i&#62;=0; i--){
  7.   r=v1[i]+v2[i]+acarreo;
  8.   if (r&#60;=9){
  9.     vr[i+1]=r;
  10.   }
  11.   else{
  12.     vr[i+1]=(r%10);  //cojo el digito de la derecha
  13.     acarreo=r/10;     //cojo el digito de la izquierda
  14.   }
  15. }
  16. vr[0]=acarreo;
  17.  


Esto es igual a como si estubieras realizando una suma en el colegio.
Salu2 !!!

antony_soluciones

  • Miembro MUY activo
  • ***
  • Mensajes: 222
    • Ver Perfil
Re: Suma De Dos Numeros De 40 Cifras
« Respuesta #2 en: Miércoles 12 de Septiembre de 2007, 21:09 »
0
hola

¿No pudes usar doubles?

double n1 = 1111111111111111111111111111111111111d;
double n2 = 9999999999999999999999999999999999999d;  
System.out.println(n1 + n2);
[size=109]Antony Hernan Delgado Solano. @antonyDelSol en twitter[/size]