Вот мой упрощенный двухрекурсивный метод. Он ничего не полезен, но иллюстрирует требуемые рекурсивные вызовы:
void Main()
{
Test(2, 3, 4);
}
int n1 = 0;
int n2 = 0;
void Test(int i1, int i2, int v)
{
if (v == 0)
{
(n1 + n2).Dump();
}
else
{
n1 = i1 + 10;
n2 = i2 + 20;
Test(n1, n2, v - 1);
Test(n2, n1, v - 1);
}
}
Я не могу понять, как я могу написать это как цикл, чтобы увидеть, улучшена ли производительность.
Я исправил пример для очевидных ошибок.