Я пытаюсь решить задачу "Очень большая сумма" на HackerRank с помощью Java.
Задача состоит в том, чтобы суммировать большие целые числа (длинные значения), но мои выходные данные не соответствуют ожидаемому ответу.
Вот мой код:
Код: Выделить всё
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long sum = 0;
for (int i = 0; i < n; i++) {
long val = sc.nextLong();
sum += val;
}
System.out.println(sum);
}
}
Код должен правильно суммировать все длинные значения и печатать итоговую сумму.
Что происходит вместо этого:
Несмотря на то, что я использую длинные, выходные данные для некоторых тестовых случаев по-прежнему неверны (либо неправильные значения, подобные переполнению, либо несовпадающие итоговые значения).
Что я пробовал:
- Вывод каждого значения для подтверждения ввода
- Замена int n на long n
- Проверка логики цикла
- Выполнение тестовых примеров вручную
Почему мое решение дает неправильные результаты для некоторых тестовых случаев, даже если я использую long?
Что-то не так с тем, как я читаю входные данные или суммирую значения?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ry-big-sum
Мобильная версия