fengrunsheng
生活中本不缺少美,缺少的是發(fā)現(xiàn)美的眼睛!
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 435 個
工控威望: 7091 點
下載積分: 19654 分
在線時間: 478(小時)
注冊時間: 2014-09-07
最后登錄: 2024-07-05
查看fengrunsheng的 主題 / 回貼
樓主  發(fā)表于: 2014-10-28 08:43

我認識了一個程序員,講到我們畢業(yè)生出來工資大概多少的時候,他出了一道題,說,這個題目的月薪是1000 ,如果做不出 說明你現(xiàn)在可能還需要努力突破¥1000 ,而不是突破¥5000

請用程序打印出a b c d e f g h i j k l這十二個字符的全部組合,每種組合占一行
你的結(jié)果可能會是
a b c d e
a b c d f
……
請用任何你熟悉的語言寫出程序

10分鐘內(nèi)完成,
fengrunsheng
生活中本不缺少美,缺少的是發(fā)現(xiàn)美的眼睛!
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 435 個
工控威望: 7091 點
下載積分: 19654 分
在線時間: 478(小時)
注冊時間: 2014-09-07
最后登錄: 2024-07-05
查看fengrunsheng的 主題 / 回貼
1樓  發(fā)表于: 2014-10-29 13:14
引用
引用第3樓659888714于2014-10-28 11:04發(fā)表的  :
諸位大仙,近幾天上網(wǎng)不方便,我自己搞了個利用循環(huán)嵌套的,一看就太拉雜了慚愧啊。
等隨后再總結(jié)一下大家的方法,謝謝啦
以下我弄得代碼暫時以數(shù)字代替字母,當(dāng)排到12個數(shù)的時候就要算半個多小時了。
看來要排出26個字母真的不可行了。
////////////////////////////
.......

多個嵌套循環(huán)的辦法是最容易想到的,并且是最笨的.
為什么不用"堆棧加遞歸"
fengrunsheng
生活中本不缺少美,缺少的是發(fā)現(xiàn)美的眼睛!
級別: 網(wǎng)絡(luò)英雄
精華主題: 0
發(fā)帖數(shù)量: 435 個
工控威望: 7091 點
下載積分: 19654 分
在線時間: 478(小時)
注冊時間: 2014-09-07
最后登錄: 2024-07-05
查看fengrunsheng的 主題 / 回貼
2樓  發(fā)表于: 2014-10-29 13:20
<script>
var stack = new Array("a","b","c","d","e","f","g","h","i","j","k","l");
var buff = new Array();

function getComb(stack, buff)
{
        if(stack.length + buff.length < 5) return; //字母不夠了,不用再試
        while(stack.length > 0) //字母還沒用完
        {
                buff.push(stack.shift()); //選取字母
                if(buff.length < 5) //還沒到5個字母
                {
                        getComb(stack.slice(0), buff.slice(0)); //繼續(xù)選取
                }
                else if(buff.length == 5)
                {
                        document.write(buff+"<br>"); //夠數(shù)量了,輸出
                }
                buff.pop(); //丟棄用過的字母
        }

        return;
}
getComb(stack, buff);
</script>