Я дано задание написания как повторяющиеся и итерации функции программы, которые определяются как:рекурсии в цикл
Т (п, 0) = п, п> = 0
Т (0, т) = т, т> = 0
Т (п, т) = Т (п-1, м) + 2 * Т (п, м-1)
Мне разрешено использовать только основные операции (так что +, - , *, /,%) и не разрешено использовать большинство «внешних» функций из любых библиотек. Написание рекурсии для этого не было, что большая часть проблемы (код в C):
int fTrec(int n, int m)
{
if(n==0)
return m;
else if(m==0)
return n;
else
return(fTrec(n-1, m)+2*fTrec(n, m-1));
}
Однако, делая это в итерации оказалось невозможным для меня. Я пытался это сделать довольно долго, я много читал об этом в Интернете - с очень небольшим успехом.
Каждый совет и вся помощь будут оценены.
Спасибо заранее!
Small edit: Забыл добавить, меня ограничивают большинство основных инструментов и возможностей языка C. Под этим я подразумеваю использование только одномерных массивов, без указателей и т. Д.
Вы можете теперь есть https://en.wikipedia.org/wiki/Primitive_recursive_function :) – shash678
Разве это не декларация вашей проблемы не так? Разве вторая строка не должна быть ** T (0, m) = m, m> = 0 **? –
@ Rightleg Да, мой плохой. Отредактировал его, спасибо, что указал на это. – TheGroch