Я прочитал ваше описание, и то, что вы делаете, неправильно.Пожалуйста, внимательно прочитайте вопрос, особенно пример на ссылочном сайте.
, как указано в комментариях moilejter, вы используете sc.nextInt()
, который не читает '\ n' и создает проблему.следующий sc.nextLine()
будет читать только пустую строку, и ваша программа выдает исключение.
Вторая проблема заключается в том, что вы должны вычислять max непрерывно и вам не нужен массив int (вы вычисляете максимальный результат операции между двумя последовательными числами исохраните их в массиве, который не соответствует максимальному целочисленному значению. вы найдете только максимальное значение между каждыми двумя цифрами, но не максимальное число операций для всех цифр).
Третья проблема заключается в том, что вы используете символ в качестве чисел, что приводит к неверному результату.(вы должны преобразовать их в целое число). Итак, для вашего вывода есть код:
public class GFG
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int testCases = Integer.valueOf(sc.nextLine());
for (int i = 0; i < testCases; i++)
{
String numbers = sc.nextLine();
char[] cNumbers = numbers.toCharArray();
long maxUntilNow = cNumbers[0] - '0';
for (int j = 1; j < cNumbers.length; j++)
{
int numberOfThisPlace = cNumbers[j] - '0';
maxUntilNow = Math.max(maxUntilNow + numberOfThisPlace,
maxUntilNow * numberOfThisPlace);
}
System.out.println(maxUntilNow);
}
}
}
Надеюсь, это то, что вы хотите.