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 5
Então a saída seria essa
2 6 14 30 62 126 254 510 1022 2046
8 14 26 50 98
Mas a saída do meu código é essa
20 40 80 160 320 640 1280 2560 5120 10240
10 20 40 80 160
Eu não estou entendendo o porquê!