10道算法題,來自於gitchat王曉華的《算法應該怎麼「玩」》專欄。git
1. 農夫須要把狼、羊、菜和本身運到河對岸去,只有農夫可以划船,並且船比較小,除農夫以外每次只能運一種東西,還有一個棘手問題,就是若是沒有農夫看着,羊會偷吃菜,狼會吃羊。請考慮一種方法,讓農夫可以安全地安排這些東西和他本身過河。算法
2. 請你把10根放在籃子裏的香蕉分給10只猴子,每隻猴要獲得一根,最後籃子裏還要留下一根香蕉,你能作到嗎?安全
3. 你讓一個工人爲你工做七天,用一根金條做爲報酬。金條被分紅7小塊,能夠天天支付一塊。可是,若是你只能將金條切割兩次,那麼你如何切割金條,能知足天天支付一塊給工人呢?it
4. 你有不限量的水,還有兩個水桶,容積分別是5升和3升。如何精確地稱量出4升水?方法
5. 如今有三個容積分別是3升、5升和8升的水桶,其中容積爲8升的水桶中裝滿了水,容積爲3升和容積爲5升的水桶是空的。三個水桶都沒有體積刻度,如今須要將大水桶中的8升水等分紅兩份,每份都是4升水,(附加條件是隻能使用另外兩個空水桶)支付
6. 如今有兩種磚,分別是1*1的磚和1*2的磚,用這兩種磚鋪1*N的地面。問共有多少種鋪法?(輸入爲N,請輸出相應的鋪法數,經典鋪磚問題)專欄
7. 12個高矮不一樣的人,排成兩排,每排必須是從矮到高排列,且第二排比第一排對應的人高。求排列方式有多少種?工作
8. 從一副撲克中隨機抽取5張牌,判斷是否是順子(5張牌數字連續,大小王爲任意數字)。數字
9. 輸入兩個整數n和m,從數列1,2,3......n中隨機取幾個數,使其和等於m,要求將其中全部的可能組合列出來。
10. 輸入一個正整數n,輸出全部和爲n的連續正整數序列。