Задача на рекурсию, нужно переписать как итерация C++
Есть задачка на C++, нужно решить рекурсивным способом и через итерацию.

С рекурсией вроде справился, но вот итерацию никак немогу написать. N і M - целые числа, результат тоже целое число. Буду очень благодарен за любую помощь. Вот код, которий написал(но он не роботает, пока не могу понять в чем проблема)
#include <iostream>
using namespace std;
double ReactangleArea(double, double);
int main()
{
double UserSideN, UserSideM;
cout << "Enter n, m: " << endl;
cin >> UserSideN >> UserSideM;
cout << "Result: " << ReactangleArea(UserSideN, UserSideM) << endl;
return 0;
}
double ReactangleArea(double UserSideN, double UserSideM)
{
double result = 0;
while(UserSideM != 0 && UserSideM != 0)
{
if(UserSideN == 1 && UserSideM == 1)
result = 1;
else if(UserSideN > 1)
{
UserSideN --;
result++;
}
else if(UserSideM > 1)
{
UserSideM --;
result++;
}
else
break;
}
return result;
}
В моем коде результат не выводиться, был бы также очень рад если б мне подсказали в чем тут ошибка)
Ответы (2 шт):
во-первых лучше все таки считать через int, а то на double есть шансы вообще условие x == 1 не получить (из-за потери точности)
да и формула все таки целочисленная вроде как
во-вторых попробуйте начать двигаться от local_n = 1, local_m = 1
сначала идете до тех пор, пока
local_n <= nпотом идёте до тех пор, пока
local_m <= m
код:
int S(const int n, const int m)
{
int res = 1;
for (int local_n = 2; local_n <= n; local_n++)
{
res = res + 1;
}
for (int local_m = 2; local_m <= m; local_m++)
{
res = res + 1;
}
return res;
}