@elton.alex escreveu:
Seguem mais detalhes do desafio, a resposta que foi dada e como poderia ter sido resolvida essa atividade:
Dados dois numeros inteiros A e B, crie um terceiro inteiro C seguindo as seguintes regras:
O primeiro número de C é o primeiro número de A;
O segundo número de C é o primeiro número de B;
O terceiro número de C é o segundo número de A;
O quarto número de C é o segundo número de B;
Assim sucessivamente…Caso os números de A ou B sejam de tamanhos diferentes, completar C com o restante dos números do inteiro maior. Ex: A = 10256, B = 512, C deve ser 15012256.
Caso C seja maior que 1.000.000, retornar -1
Desenvolva um algoritmo que atenda a todos os requisitos acima.Código Proposto como Resposta:
public class ManipulacaoNumerica { public static void GerarC(String a, String b) { if (a != null && b != null) { StringBuilder c = new StringBuilder(); System.out.println("Valores de Entrada: " + a + " - " + b); int i = 0; int j = 0; loop: for (; i <= a.length();) { System.out.println(i); int proxi = i + 1; if (proxi <= a.length()) { c.append(a.substring(i, proxi)).toString(); } i++; for (; j <= b.length();) { System.out.println(j); int proxj = j + 1; if (proxj <= b.length()) { c.append(b.substring(j, proxj)).toString(); } j++; continue loop; } } try{ int valor = Integer.valueOf(c.toString()); if (valor < 1000000) { System.out.println("Valor de Saída: " + c); } else { valor = -1; System.out.println("Número maior que 1.000.000:" + valor); } }catch (Exception e) { // TODO: handle exception int valor = -1; System.out.println("Ocorreu um erro na aplicação: "+ e +" o valor de c é: "+valor); } } } public static void Executa(String a, String b) { if(a.length() > b.length()){ GerarC(a,b); }else{ GerarC(b,a); } } public static void main(String[] args) { Executa("24", "1999"); } }
Queria saber se esse código está muito ruim.
Mensagens: 1
Participantes: 1