[英]How to do a recursion function that receives an array, find the sum of it and the integers in the array that divide the sum
我需要一些帮助来在 C# 中创建递归 function。
function 接收一个int
数组,它找到它的总和并打印数组中除总和的所有数字。
您不能在 function 内创建循环或创建单独的循环。
我的想法是这样的,但它不起作用。
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++);
}
}
}
晚上好,我相信您的问题是您使用的是 PostIncrement 运算符而不是预增量运算符。 改变
print(array, sumIndex++, sum, devIndex);
和
print(array, sumIndex, sum, devIndex++);
至
print(array, ++sumIndex, sum, devIndex);
和
print(array, sumIndex, sum, ++devIndex);
这两者之间的区别在于,第一个将值传递给 function(假设为 1),然后在第二个将其递增的地方递增(因此将其从 1 更新为 2),然后将其传递给 function。
所以目前你的代码将永远递归只处理数组中的第一个值!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.