Я удовлетворен всеми ответами, но зачем делать это за линейное время, если вы можете делать это за постоянное время, используя некоторую математику, благодаря которой вам вообще не понадобятся циклы. но если вы просто наклоняетесь, go с ответом выше.
если вы знаете AP, вы можете легко увидеть, что вы находите сумму AP
, поэтому ваш первый член a = 2, как вы сказали.
ваша общая разница d = 2 как только четные числа.
последний член l = ввод пользователя = a + (n-1) d;
т. Е. N = (l - a) d + 1. и сумма = n / 2 (a + l).
Примечание в коде проверяет, вводит ли пользователь нечетное число в качестве входных данных, поскольку последний член AP с общей разницей 2 не может быть нечетным, если пользователь вводит нечетное число, вы вычитаете одно из него, иначе оставляете его,
это просто как
if(input % 2 == 0)
input -=1;
numberOfTerms = (input - 2 )/2 + 1;
// numberOfTerms равно n;
sum = (numberOfTerms(2 + input))/2;
// входное значение равно l;