【发布时间】:2021-03-25 11:21:30
【问题描述】:
我需要一些帮助才能在 C# 中创建递归函数。
该函数接收一个int 数组,它找到它的和并打印数组中除该和的所有数字。
您不能在函数内部创建循环或创建单独的循环。
我的想法是这样的,但它不起作用。
static public void print(int[] array, int sumIndex = 0, int sum = 0,int devIndex = 0)
{
if (sumIndex < array.Length)
{
sum = sum + array[sumIndex];
print(array, sumIndex++, sum, devIndex);
}
else
{
if (sum % array[devIndex] == 0)
{
Console.WriteLine(array[devIndex]);
print(array, sumIndex, sum, devIndex++);
}
}
}
【问题讨论】:
-
“它不起作用” 对于 Stack Overflow 来说不是一个合理的问题陈述。你需要更具体。请解释实际发生的事情与您的预期不同。
-
我认为这是功课。我强烈建议学习使用调试器。这使您可以逐步执行程序并检查所有变量的值,这使您可以验证您对应该发生什么的假设。一个提示是用一个小数组测试程序,比如 {1, 2, 3}。如果你添加另一个数字,比如 4,会发生什么?如果你颠倒数字的顺序会发生什么?
-
还有。该问题应指定“均匀除以总和”。否则没有多大意义。