兩種方法解決排列問題

2021-10-11 15:28:26 字數 1388 閱讀 9345

time limit : 1.000 sec memory limit : 128 mb

problem description

有4個互不相同的數字,請按序輸出由其中三個不重複數字組成的排列。

input

4個整數。

output

所有排列,輸出順序見樣例。

sample input

1 2 3 4

out input

1 2 3

1 3 2

2 1 3

2 3 1

3 1 2

3 2 1

1 2 4

1 4 2

2 1 4

2 4 1

4 1 2

4 2 1

1 3 4

1 4 3

3 1 4

3 4 1

4 1 3

4 3 1

2 3 4

2 4 3

3 2 4

3 4 2

4 2 3

4 3 2

類似於高中所用到的窮舉法,將所有可能的結果全部羅列一般,比較浪費時間,而且fun函式中每個x,y,z順序是固定的稍微改變一點就會導致編譯錯誤,太過於死板

#include

void

fun(

int x,

int y,

int z)

intmain()

不同於上面的函式窮舉法,迴圈在這裡的優勢格外的突出,它不需要你再在源**中將可能的組合乙個個羅列出來,而是通過乙個個迴圈巢狀的條件相互約束,將錯誤的數值去掉。
#include

intmain()

}}}}

}return0;

}

這個方法簡單是簡單,但是括號也太多了了吧,不自覺的讓人感覺眼花繚亂,可不可以精簡一些呢,答案是肯定的。本題屬於迴圈中的個例,也許是物極必反吧(偷笑),其實這道題可以除了main函式的括號其他的乙個也不用加,因為無論是for語句還是if語句,在不加括號的情況下只管下面的第一行**,因此本題真正需要的括號只有乙個。
#include

intmain()

個人建議不要將**進行格式化,否則那種整齊的美感就沒了(偷笑)。

兩種方法解決約瑟夫問題

第一種 構建迴圈鍊錶,然後不斷遍歷鍊錶直到剩下最後乙個元素。include include include include include include using namespace std typedef struct list list,link int main p next head n...

python兩種方法解決執行緒衝突問題

本博文源於python基礎炫酷技能,主要講述python的執行緒的問題。大家學到多執行緒的時候只要搞明白兩種東西即可,第一線程通訊,另乙個叫做執行緒衝突。本博文就以一種列印數字的方法 執行緒衝突的解決方案!實驗效果 實驗 import thread import time num 0def add ...

uni app兩種方法解決跨域問題

module.exports 第二種 在manifest.json的 檢視中 根節點中 即 中 做如下宣告 h5 最後在你統一的網路請求中做如下判斷即可 var base url http 9088 不是h5預設這個位址 ifdef h5 base url dpc h5下將位址修改為 dpc end...