我張貼this similar, previous question,但我也不是很清楚。更改此嵌套的for循環遞歸
我有以下代碼:
int N=4;
int[] myArray = new int[N];
for (int i1 = 1; i1 < N; i1++)
myArray[0]=i1;
for (int i2 = 1; i2 < N; i2++)
myArray[1]=i2;
for (int i3 = 1; i3 < N; i3++)
myArray[2]=i3;
for (int i4 = 1; i4 < N; i4++)
{
myArray[3]=i4;
foreach (var item in myArray)
Console.Write(item.ToString());
Console.Write(Environment.NewLine);
}
此輸出以下:
1111
1112
1113
1121
1122
1123
1131
....
3332
3333
有沒有一種簡單的方法來改變這種嵌套for
循環,遞歸?我對編程不熟練,所以越簡單越好。我並不擔心代碼的效率。
我希望能夠將我的代碼中的int N
更改爲不同的數字,而無需在我的代碼中添加或刪除任何內容。
編輯
這是我到目前爲止有:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sandbox
{
class Program
{
static void Main(string[] args)
{
int class_length = 4;
int[] toric_class = Enumerable.Repeat(1, class_length).ToArray();
Recursion(toric_class, class_length, 1, 3);
Console.Read();
}
static void Recursion(int[] toric_class, int length, int number, int spot)
{
if (number < 4)
{
toric_class[spot] = number;
foreach (var item in toric_class)
{
Console.Write(item.ToString());
}
Console.Write(Environment.NewLine);
Recursion(toric_class, length, number + 1, spot);
}
}
}
}
這隻輸出
1111
1112
1113
我不確定在哪裏何去何從。
功課?除此之外,你的5迴路結構看起來設計不好。而不是想着遞歸(記住堆棧溢出),你能想到的數據結構。 – mnemonic
你應該有編輯前一個問題,因此它可以被重新打開。我正在投票結束重複。 – Amy
@記憶力不,不做功課,只是爲了我自己的利益而努力。 – Bonnaduck