以下程序是一个递归函数,它计算两个正整数的值。
int riddle (int i, int j)
{
if (j==0) return i;
return riddle(j, i%j);
}
我想知道一个while循环如何将这个程序转换为一个非递归函数而没有任何if -statement?
非常感谢你的帮助
答案 0 :(得分:0)
假设i> j,使用while可以使用递归找到两个no.s的HCF。试试这个:
int i=val1,j=val2;
while (j != 0)
{
int t;
t = j;
j = i % j;
i = t;
}
答案 1 :(得分:0)
首先,确定结束递归的条件,这将是结束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