【发布时间】:2019-10-02 03:55:03
【问题描述】:
我正在尝试编写用于减数的递归函数。
我的起始数字是 33,我想用 X 递归减去这个数字。X 可以是任何数字,但为了这个目的,让它为 1,所以结果应该是这样的:
33 32 31 30 29 ....
33 - 1 = 32 - 1 = 31 - 1 = 30 - 1 = 29...
递归函数应该将减去的值返回给主函数。
到目前为止,我已经这样做了:
void Main()
{
double x = 1.0;
for (int i=0; i<=10; i++)
{
double res = calc(33, x);
Console.WriteLine(res);
}
}
static double calc(double val, double roc)
{
double c = 0;
c = val + roc;
return c;
}
循环是每次调用函数并发送数字 33,但结果始终相同。如何从 calc() 方法中返回值并将该值用于下一次减法?
【问题讨论】:
-
递归减法是
int sub(int a, int b) => b == 0 ? a : b > 0 ? sub(a-1, b-1) : sub(a+1, b+1);