递归函数的转换
Conversion of a recursive function
以下程序是一个递归函数,它从两个正整数计算一个值。
int riddle (int i, int j)
{
if (j==0) return i;
return riddle(j, i%j);
}
我想知道一个 while-loop 如何在没有任何 if 语句的情况下将该程序转换为非递归函数?
非常感谢您的帮助
假设 i>j,您可以使用 while 使用递归查找两个 no. 的 HCF 的过程。 试试这个:
int i=val1,j=val2;
while (j != 0)
{
int t;
t = j;
j = i % j;
i = t;
}
首先,确定结束递归的条件,这将是结束while
循环的条件。
接下来,确定要在递归期间执行的语句,这些语句将构成while
循环的主体。
最后,确定要在递归结束时执行的语句,这些语句将在while
循环之后立即执行。
伪代码:
while condition to perform recursion is true
{
perform statements to be executed during recursion
}
perform statements to be executed upon exiting recursion
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何在Elixir中调用递归函数并行
- 递归函数有效,但无法记忆
- 使用递归函数 (c++) 将长字符串转换为整数时输出错误
- 如何将递归函数(具有两个基本情况)转换为迭代函数
- 将递归函数转换为迭代函数
- 转换递归函数
- Python 3.3 如何将这个递归函数转换为纯收益循环版本?
- 将这个糟糕但功能强大的代码转换为递归函数
- 在turbo c++中,可以将一个普通递归函数转换为尾递归函数来对其进行优化
- 将迭代函数转换为递归函数
- 将迭代函数转换为递归函数
- 如何从递归函数返回指针,该函数将抛光表示法转换为反向抛光表示法
- 递归函数的转换
- 转换递归函数并使其迭代
- 将递归函数转换为尾递归函数
- 将迭代函数转换为递归函数
- C++ |需要帮助从 for 循环函数转换 - >递归函数
- 这个递归函数是如何自动转换成迭代函数的
- 在递归函数中,c++基转换过程中意外输出到屏幕