测试示例:
b = 3
c = 19
常量 = 4
总和 = 55
(3 + 7 + 11 + 15 + 19 = 55)
逻辑是:使用递归函数将算术线的数字相加
但我的代码只输出“return c”行
class Program
{
static int Line(int b, int c, int constant, int sum)
{
if (b > c) return c;
return (sum = sum + (Line(b+constant, c, constant, sum)));
}
static void Main(string[] args)
{
Console.WriteLine(Line(3,19,4,0));
Console.ReadKey();
}
}
最佳答案
经过调试(只需放置断点并查看发生了什么)之后,您可以轻松地在当前实现中找到两个错误:
static int Line(int b, int c, int constant, int sum) {
if (b > c)
return sum; // return "sum", not "c"
// "= b +" not " = sum +"
return (sum = b + (Line(b + constant, c, constant, sum)));
}
关于C#递归函数添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33261025/