【发布时间】:2020-02-18 05:05:11
【问题描述】:
我必须编写一个代码来使用某种方式计算余数。我知道有更好的方法可以做到这一点,但我必须这样做。
if (rem(x - 1, y) + 1 == y) 正在打额外的电话。因为它每次都会在到达最后一次返回之前进入那里,但这对我的算法来说是重要的一步。我想知道是否有任何方法可以避免它。
另外,我知道我必须检查if y == 0; 我现在只是想提高性能。
谢谢
int rem(int x, int y)
{
if (x == 0)
{
return 0;
}
if (rem(x - 1, y) + 1 == y)
{
return 0;
}
return rem((x - 1), y) + 1;
}
我收到 9 次 rem(3/2) 的递归调用
【问题讨论】:
-
应该是
x-y,而不是x-1?
标签: java c++ c algorithm recursion