ошибка с делением на 0, но без нуля в коде - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь решить проблемы кодирования Project Eleur с помощью Java (каждый новый термин в последовательности Фибоначчи создается путем добавления двух предыдущих терминов. Начиная с 1 и 2, первые 10 терминов будут: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 Рассматривая термины в последовательности Фибоначчи, значения которых не превышают четырех миллионов, найдите сумму четных членов.) Я сделал этот код

public class JavaApplication15 {
    public static void main(String[] args) {
        int a1=1;
        int a2=2;
        int a3;
        int aux;
        int sum=3;
        a3=3;
        while(a3<=4000000){
            a3=a1+a2;
            aux=a2;
            a2=a3;
            a1=aux;
            if(a3%0==0){
                sum+=a3;
            }
        }
        System.out.println("the sum is"+sum);
    }

Я не знаю, будет ли отображаться правильный ответ, НО ошибка, которую я получаю при компиляции кода, является исключением в потоке "main" java.lang.ArithmeticException: / by zero

1 Ответ

0 голосов
/ 06 ноября 2019

Как отмечалось в комментариях, вы получаете ArithmeticException, потому что% (modulo) возвращает остаток от деления, другими словами, он выполняет деление.

Это как если бы вы написали a3 / 0, то же самоеисключение.

Рассматривая термины в последовательности Фибоначчи, значения которых не превышают четырех миллионов, найдите сумму четных членов

Я думаю, вы, вероятно, хотитесуммировать четные значения Фибоначчи. Для этого случая по модулю правильный операнд, однако вы должны разделить на 2 и проверить, равен ли остаток 0.

...