Реализовать алгоритм рекурсивно и итерационно

Стоит задача решить рекурсией и итерационно 11

a и b вводят с клавиатуры.
Попытался сделать рекурсией сам, однако так и не понял, где она должна возникать. Может у вас есть какие-то идеи, что я делаю не так?

#include <math.h>
#include <iostream>

using namespace std;

int recursion(int a, int b) {
    if (b == 0)
        return a;
    if (b > 0)
        return (a + 1) + (b - 1);
    else if (b < 0)
        return (a - 1) + (b + 1);
}

int main() {
    int a;
    cout << "Enter: a= \n";
    cin >> a;
    int b;
    cout << "Enter: b= \n";
    cin >> b;
    cout << " " << recursion(a, b) << endl;
    return 0;
}

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

Автор решения: Harry
int recursion (int a, int b)
{
    if ( b == 0 ) return a;
    if (b > 0)
        return recursion(a + 1,b - 1);
    else
        return recursion(a - 1,b + 1);
}

Итеративно:

int iteration (int a, int b)
{
    while(b > 0) {a++; b--; }
    while(b < 0) {a--; b++; }
    return a;
}
→ Ссылка