已知1個數有1種排列方法(1),2個數有2種排列方法(1、2,2,1),3個數有6種排列方法(1、2、3,1、3、2,2、1、3,2、3、1,3、1、2,3、2、1),n個數有n!種排列方法。
請教,怎樣才能用程式實作輸出n個數的所有排列結果呢?
uj5u.com熱心網友回復:
你這是求笛卡爾積,可參考:https://blog.csdn.net/zhangshuxia/article/details/82428927uj5u.com熱心網友回復:
可參uj5u.com熱心網友回復:
int[] source = new int[] { 1,2,3};
for (int i = 0; i < source.Length; i++)
{
for (int j = 0; j < source.Length - 1; j++)
{
Console.WriteLine(string.Join(",", source));
int temp = source[j];
source[j] = source[j + 1];
source[j + 1] = temp;
}
}難得想,就直白的做。length 1時需要特殊處理,因為他進不了第2層回圈。 東西不復雜,說白了就是把值不停的和后一個值交換,交換到底在從頭交換
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/274952.html
標籤:C#
上一篇:[.net] 關于Exception的幾點思考和在專案中的使用(二)
下一篇:微信小程式error WAService.js:2 ReferenceError: Data is not defined
