Найти сумму чисел

Пользователь вводит два числа и нужно найти сумму чисел между ними. Пример: 10 и 12, сумма которой будет 33. Но в моём случае программа почему-то всегда даёт сумму на три больше.

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = scan.nextInt();
        int i = 0;
        if(m>n){
            while(n-1<m){
            n++;
            i +=n;
            }
            System.out.println(i);
      }
        
        
    }
}

Ответы (1 шт):

Автор решения: Aziz Umarov

считайте по формуле арифметической прогрессии

Сумма n первых членов арифметической прогрессии вычисляется как:

(a_1 + a_n)*n/2

в вашем случае это

import java.io.*;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int m = scan.nextInt();
        System.out.println((n + m)*(m - n + 1)/2);
        
    }
}

ну или по формуле

(n + m)*(m - n + 1)/2 это (10 + 12)*(12 - 10 + 1)/2 = 33
→ Ссылка