我一直在努力使用所述回溯算法 號碼3個的組合和迄今我也做了以下內容:組合生成使用回溯算法
static int a, b, c;
static void Combo(int a,int b, int c)
{
if (a != 10)
{
Combo(a, b, c);
a++;
}
if (b != 10)
{
Combo(a, b, c);
b++;
}
if(c != 10)
{
Combo(a,b,c);
c++;
}
Console.WriteLine("({0}, {1}, {2})",a,b,c);
}
和主要方法:
static void Main(string[] args)
{
Console.WriteLine("Press Any Key to Start Generating xxx number Combination");
Console.ReadKey();
Combo(0,0,0);
Console.WriteLine("Combo function has finished Successfully!");
Console.ReadKey();
}
我在cmd上收到一條消息,提示「進程因StackOverFlowException而終止」。
有沒有我的代碼有問題? 如果沒有,請你幫我解決這個問題。流程問題 注意:我只需要一個遞歸回溯算法;我不尋找任何幻想,創造性超出我的聯盟。
Thanks Forwards!
你有一個乾淨的心靈!如果......我從來沒有想過它! – Obzajd
still ..這並不給出整個組合...... 我們是否需要在關閉每個if語句時編寫嵌套的Else語句? 這是否完全解決了它? – Obzajd
嘗試將結果添加到列表中?這可能是控制檯無法顯示全部1000個結果的限制。 – Sayse