0
У меня есть следующий рекурсивный код, который я хочу изменить на итеративный код. Я не уверен, с чего начать, поскольку функция очень сложна с рекурсивными вызовами в двух местах. Любые возможные итерационные реализации для функции ниже?Запись Рекурсивный код итеративно
int ncip(int dim, double R){
int n, r = (int)floor(R);
if (dim == 1)
return 1 + 2*r;
n = ncip(dim-1, R); // last coord 0
for (int i=1; i<=r; ++i){
n += 2*ncip(dim-1, sqrt(R*R - i*i)); // last coord +- i
}
return n;
}
Вы должны проверить сайт этого чувака, если вы еще не: https://monsiterdex.wordpress.com/2013/04/05/целое число-решеточное-в-п-мерные сферы-кол-из-точка-с-целочисленные координаты, использующий-параллельного программирование-частью-я / –