我如何為這個回圈撰寫遞回函式,我正在對這個陣列元素求和。
int[,,,] exampleArray = new int[1,2,3,4];
int sum = 0;
for (int i = 0; i < 1; i )
{
for (int j = 0; j < 2; j )
{
for (int k = 0; k < 3; k )
{
for (int l = 0; l < 4; l )
{
sum = exampleArray[i, j, k, l];
}
}
}
}
Console.WriteLine(sum);
uj5u.com熱心網友回復:
它實際上很簡單,只需要一種將所有 4 個索引表示為單個變數的方法:
static int recursiveSum(int[,,,] a, int index = 0)
{
int ti = index;
int l = ti % a.GetLength(3); ti /= a.GetLength(3);
int k = ti % a.GetLength(2); ti /= a.GetLength(2);
int j = ti % a.GetLength(1); ti /= a.GetLength(1);
int i = ti % a.GetLength(0); ti /= a.GetLength(0);
if (ti > 0) {
return 0;
}
return a[i, j, k, l] recursiveSum(a, index 1);
}
static void Main(string[] args)
{
int[,,,] exampleArray = new int[1, 2, 3, 4];
int sum = recursiveSum(exampleArray);
Console.WriteLine(sum);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/511111.html
標籤:C#循环递归嵌套的
上一篇:即使內部更改作業正常,C 外回圈也不會超過第一次迭代
下一篇:這個問題可以用嵌套回圈解決嗎?
