Мне нужно вычислить сумму последовательных целых чисел в 1.) метод цикла for и 2.) рекурсивный метод. Оба метода являются статическими методами типа int, которые принимают два параметра типа int (один - начальный тип int, а другой - число целых чисел, следующих за ним). Например, если бы я должен был ввести (3, 3), выходное значение должно быть 18, потому что 3 - это начальное число, а 3-х - 4, 5 и 6. Когда вы добавляете их все (3 + 4 + 5) +6) вы получаете 18. Оба метода выполняют одну и ту же математику, за исключением того, что один делает это с циклом for, а другой - рекурсивно.
Проблема, с которой я столкнулся, заключается в том, что мой метод for loop не суммирует должным образом. Когда я ввожу (3, 3), вывод равен 31. Кроме того, я не совсем уверен, как написать рекурсивный метод, так как метод for for не работает. Могу ли я получить помощь с этим?
Кроме того, нет массивов или списков массивов. Этот код должен быть в состоянии работать без них.
public static int consecSum(int startingNum, int numInts){
for (int i = numInts; i>0; i--){
startingNum += (startingNum + 1);
}
return startingNum;
}
public static int recursSum(int startingNum, int numInts) {
if (startingNum == 0) {
return 0;
} else if (numInts == 0) {
return startingNum;
}
return startingNum + recursSum(startingNum + numInts, numInts - 1);
}
3 \\startingNum (theres more code not shown where I use a scanner object to input these)
3 \\numInts
31 \\for loop output
\\The recursive method just prints an error message