Autor
|
Tema: Ayuda con algoritmo de suma de octales (Leído 5,581 veces)
|
Legnak
Desconectado
Mensajes: 61
("Programador");
|
Hola, me han mandado a hacer un algoritmo de suma de octales, sé que en Java simplemente con el Integer.parseInt todo se hace muy fácil, pero el profesor me ha dicho que quiere todo a pie ._., por tanto no puedo usar esa función, esto es lo que llevo hecho de ese algoritmo, pero de momento solo me suma pequeñas cifras, espero puedan ayudarme a mejorar este código package programa; import java.util.Scanner; public class Programa { static int a, b; public static void main (String[] args ) { Scanner leer = new Scanner (System. in); System. out. println("Introduzca el primer octal"); String valor = leer. nextLine(); try { int valord = Integer. parseInt(valor, 8 ); } { System. out. println("El primer número debe ser octal"); } System. out. println("Introduzca el segundo octal"); String valorb = leer. nextLine(); try { int valordb = Integer. parseInt(valorb, 8 ); } { System. out. println("El segundo número debe ser octal"); } int val; int mayor = valor.length() > valorb.length() ? valor.length() : valorb.length(); int acarreo = 0; boolean seguir = true; for (int cont = mayor-1; cont >= 0; cont--) { val = 0; try { a = Character. getNumericValue(valor. charAt(cont )); } { a = 0; seguir = false; } try { b = Character. getNumericValue(valorb. charAt(cont )); } { b = 0; seguir = false; } val = a + b; if (acarreo > 0) { val += acarreo; acarreo = 0; } if (val >= 10) acarreo = val/10; if (val > 7) val -= 8; res += val; if (!seguir) { if (val > 0) res += val; else if (acarreo > 0) res += val; } } } }
Saludos y gracias de antemano
|
|
|
En línea
|
|
|
|
Slider324
Desconectado
Mensajes: 45
|
puedes cambiar: por alguna de esta para ya no necesitar convertir a integer, double etc.. y no usar parse para convertir, para usar numeros grandes te recomiendo double saludos leer.nextDouble(); leer.nextInt(); leer.nextFloat();
|
|
|
En línea
|
|
|
|
Legnak
Desconectado
Mensajes: 61
("Programador");
|
hermano lo que pasa es que para validar que sean enteros de 8 bits uso la función Integer.parseInt y esa usa como parámetro un String, así que no tengo opción  gracias por comentar 
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
En vez de hacer un código modo hacker, simplemente enfocate en crear dos funciónes. Una que convierta de octal a decimal y otra a decimal a octal. Luego de esos sumar, multiplicar y dividir con octal seria muy facil...
También tienes el método estático valueOf de la clase Integer que hace exactamente lo mismo que parseInt, excepto que este retorna un Wrapper. Pero utilizarlo seria un insulto hacia al profesor jejeje, seguro te hecha xD.
Saludos.
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
Legnak
Desconectado
Mensajes: 61
("Programador");
|
el problema es que el profesor quiere que la suma sea "a pie", con el asunto del acarreo y eso D:
|
|
|
En línea
|
|
|
|
Legnak
Desconectado
Mensajes: 61
("Programador");
|
ya le he avanzado, el bug que tiene por el momento es que no puedo sumar dos números de distintas cifras, acá lo dejo por si alguien me quiere ayudar  { int a, b; int val = 0; int recorrido = valor.length() > valorb.length() ? valor.length() : valorb.length(); int acarreo = 0; for (int cont = recorrido-1; cont >= 0; cont--) { val = 0; try { a = Character. getNumericValue(valor. charAt(cont )); } { a = 0; } try { b = Character. getNumericValue(valorb. charAt(cont )); } { b = 0; } val = a + b; if (acarreo > 0) { val += acarreo; acarreo = 0; } if (val > 7) { acarreo = 1; val -= 8 ; } res += val; } if (acarreo > 0) { res = res + "" + acarreo ; } return res; }
|
|
|
En línea
|
|
|
|
Legnak
Desconectado
Mensajes: 61
("Programador");
|
listo, ya lo terminé 
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
AYUDA URGENTE!!!!!!!!! Suma de Cadena de Caracteres o palabras
Ejercicios
|
pcvsoft
|
6
|
14,599
|
4 Enero 2008, 18:56 pm
por BeatLord
|
|
|
ayuda!!! No me sale una suma.
Programación Visual Basic
|
cneangel
|
4
|
3,263
|
12 Octubre 2009, 22:44 pm
por cneangel
|
|
|
ayuda con suma
ASM
|
karmi
|
2
|
6,262
|
18 Marzo 2011, 18:54 pm
por Eternal Idol
|
|
|
Algoritmo: Suma N numeros pares implementando ciclo while
Programación C/C++
|
LauraD
|
6
|
25,196
|
12 Abril 2014, 16:07 pm
por leosansan
|
|
|
Ayuda suma en TASM
ASM
|
BetoRoGa
|
1
|
4,438
|
18 Octubre 2015, 06:31 am
por Eternal Idol
|
|