【发布时间】:2020-11-01 17:16:09
【问题描述】:
所以我从考试题中得到了这段代码,我必须用循环转换递归部分,现在我尝试了很多次,但循环将是无止境的,这里我做了什么:
递归代码
int f(int n, int m)
{
int k;
if (m == 0) return n;
k = n % m;
return k==0 ? m : f(m,k);
}
循环代码
int ff(int n, int m)
{
int k;
if (m == 0) return n;
k = n % m;
if (k == 0 ) return m;
else {
for(int i = 0 ; k != 0; i++ )
{
int h;
h = k % m;
if( h == 0 ) return k;
}
}
return m;
}
【问题讨论】:
-
请对该循环执行一些rubber duck debugging。 (提示:您何时何地修改
k或m?)
标签: c loops recursion function-definition non-recursive