【发布时间】:2016-02-20 10:24:39
【问题描述】:
基本上我有一个递归函数,我不想再递归了。 但是我无法弄清楚现有代码本身的逻辑。
这里是
float myRecursiveFunction(x, y, depth, divisor) {
if(depth == 0)
return result(x/divisor, y/divisor);
float displace = myRecursiveFunction(x, y, depth-1, divisor/2);
return result(displace+(x/divisor), displace+(y/divisor));
}
这就是它的名称:
float myresult = myRecursiveFunction(x, y, 5, 2);
它总是用 5 和 2 调用。
你们中有人知道如何进行吗?或者如果它足够短,一个没有递归的代码?
float result(float, float) 在这里并不重要,它只是一个返回随机浮点数的函数。这里的重点是去掉递归
【问题讨论】:
-
函数的核心是另一个函数
result,这里不定义。 -
这不是问题,result() 只是返回一个随机浮点数。
-
所以你的函数返回一个随机浮点数。无需迭代。
-
这样做的目的是让递归函数变得可迭代,不管 result() 做什么。
-
x、y、depth、divisor有哪些类型?depth是整数类型吗?divisor是浮点类型吗?x和y也是float吗?