@Leomomente escreveu:
Galera, estou fazendo uns desafios de java e estou travado nesse já há dois dias, alguém pode dar uma luz aí?
Aqui está meu código:
import java.util.*; import java.io.*; class Solution{ public static void main(String []argh){ Scanner in = new Scanner(System.in); int t = in.nextInt(); in.nextLine(); //Problema do Scanner int[] a, b, n; String[] lines = new String[t]; a = b = n = new int[t]; //Prepara as entradas for(int i=0; i<t; i++){ lines[i] = in.nextLine(); String[] parts = lines[i].split(" "); try{ a[i] = Integer.valueOf(parts[0]); System.out.print(a[i]+" "); b[i] = Integer.valueOf(parts[1]); System.out.print(b[i]+" "); n[i] = Integer.valueOf(parts[2]); System.out.println(n[i]+" "); }catch(Exception e){ System.out.print(e.getMessage()); } } //Para cada linha, repita a enquanto //houver somas a serem feitas for(int i=0; i<t; i++){ int somaAtual = 0; //Atualiza o 'a' para cada linha int count = 1; //Multiplicador = 1 2 4 8 .. int aux = 1; //Iterador da soma atual do{ for(int j=0; j<aux; j++){ somaAtual += (count*b[i]); //Soma atual recebe multiplicador * 'b' atual count*=2; if(j==(aux-1)){ somaAtual += a[i]; System.out.print((somaAtual)+" "); //Próxima soma da linha somaAtual = 0; //Atualiza 'a' para nova soma aux++; //Indica que foi realizado mais uma soma count = 1; //Realoca multiplicador break; } } }while(aux<=n[i]); //Enquanto soma atual < total de somas atual //Próxima linha System.out.println(""); }//end for in.close(); } }
Ele deveria fazer o seguinte:
Se a entrada fosse essa
2
0 2 10
5 3 5Então a saída seria essa
2 6 14 30 62 126 254 510 1022 2046
8 14 26 50 98Mas a saída do meu código é essa
20 40 80 160 320 640 1280 2560 5120 10240
10 20 40 80 160Eu não estou entendendo o porquê!
Mensagens: 3
Participantes: 2