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

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

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

10分鐘內(nèi)完成,
lizhiliang
級(jí)別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 416 個(gè)
工控威望: 505 點(diǎn)
下載積分: 12728 分
在線時(shí)間: 677(小時(shí))
注冊(cè)時(shí)間: 2010-07-29
最后登錄: 2023-01-06
查看lizhiliang的 主題 / 回貼
1樓  發(fā)表于: 2014-10-28 08:50
循環(huán)嵌套?
659888714
沒(méi)有所謂失敗,除非你不再嘗試。
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 201 個(gè)
工控威望: 341 點(diǎn)
下載積分: 14709 分
在線時(shí)間: 227(小時(shí))
注冊(cè)時(shí)間: 2014-06-21
最后登錄: 2024-10-23
查看659888714的 主題 / 回貼
2樓  發(fā)表于: 2014-10-28 11:04
諸位大仙,近幾天上網(wǎng)不方便,我自己搞了個(gè)利用循環(huán)嵌套的,一看就太拉雜了慚愧啊。
等隨后再總結(jié)一下大家的方法,謝謝啦
以下我弄得代碼暫時(shí)以數(shù)字代替字母,當(dāng)排到12個(gè)數(shù)的時(shí)候就要算半個(gè)多小時(shí)了。
看來(lái)要排出26個(gè)字母真的不可行了。
////////////////////////////
#include <time.h>
#include <windows.h>
#include<stdio.h>
main()
{
time_t t_start, t_current;
FILE * fp ;
fp=fopen("DATA.TXT","w");
int a,b,c,d,e,f,g,h,i,j,k,l;
const int num = 12 ;
fprintf(fp,"\n");
t_start = time(NULL) ;
for(a=1;a<=num;a++)
{//外層for
if( 1 ) // num之1
fprintf(fp,"%d\n",a);
for(b=1;b<=num;b++)
{//2層for
if( a<b ) // num之2
fprintf(fp,"%d,%d\n",a,b);
for (c=1;c<=num;c++)
{//3層for
if( a<b && b<c ) // num之3
fprintf(fp,"%d,%d,%d\n",a,b,c);
for (d=1;d<=num;d++)
{//4層for
if( a<b && b<c && c<d ) // num之4
fprintf(fp,"%d,%d,%d,%d\n",a,b,c,d); /////////計(jì)算完成百分比和時(shí)間//////////
t_current = time(NULL) ;
printf("已用時(shí)%.0f秒,完成%2.1f%%\r", difftime(t_current,t_start),(float)a/num * 100 - 0.1 );
////////////////////////////////////// for (e=1;e<=num;e++)
{//5層for
if( a<b && b<c && c<d && d<e ) // num之5
fprintf(fp,"%d,%d,%d,%d,%d\n",a,b,c,d,e);
for (f=1;f<=num;f++)
{//6層for
if( a<b && b<c && c<d && d<e && e<f ) // num之6
fprintf(fp,"%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f);
for (g=1;g<=num;g++)
{//7層for
if( a<b && b<c && c<d && d<e && e<f && f<g ) // num之7
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g);
for (h=1;h<=num;h++)
{//8層for
if( a<b && b<c && c<d && d<e && e<f && f<g && g<h ) // num之8
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h);
for (i=1;i<=num;i++)
{//9層for
if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i ) // num之9
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i);
for (j=1;j<=num;j++)
{//10層for
if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i && i<j ) // num之10
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i,j);
for (k=1;k<=num;k++)
{//11層for
if( a<b && b<c && c<d && d<e && e<f && f<g && g<h && h<i && i<j && j<k ) // num之11
fprintf(fp,"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",a,b,c,d,e,f,g,h,i,j,k); }//11層for
}//10層for
}//9層for
}//8層for
}//7層for
}//6層for
}//5層for
}//4層for
}//3層for
}//2層for
}//外層for
printf("計(jì)算全部完成,總計(jì)用時(shí)%.0f秒。\n", difftime(t_current,t_start));
printf("結(jié)果保存在程序所在目錄之下。\n");
}


本帖最近評(píng)分記錄:
  • 下載積分:+1(fengrunsheng) 多個(gè)嵌套循環(huán)的辦法是最 ..
    yamqq
    雅馬哈,愛(ài)普生,電裝機(jī)器人。
    級(jí)別: 網(wǎng)絡(luò)英雄

    精華主題: 0
    發(fā)帖數(shù)量: 1717 個(gè)
    工控威望: 5539 點(diǎn)
    下載積分: 24588 分
    在線時(shí)間: 299(小時(shí))
    注冊(cè)時(shí)間: 2008-05-05
    最后登錄: 2024-08-25
    查看yamqq的 主題 / 回貼
    3樓  發(fā)表于: 2014-10-28 11:56
    呵呵,除非這是搞底層研究的,搞應(yīng)用還是工藝為王。
    這個(gè)人很懶,什么也沒(méi)有留下!
    peteryi
    級(jí)別: 正式會(huì)員
    精華主題: 0
    發(fā)帖數(shù)量: 7 個(gè)
    工控威望: 97 點(diǎn)
    下載積分: 583 分
    在線時(shí)間: 2(小時(shí))
    注冊(cè)時(shí)間: 2014-10-28
    最后登錄: 2019-07-31
    查看peteryi的 主題 / 回貼
    4樓  發(fā)表于: 2014-10-28 18:47
    看來(lái)我不值1000
    zhuo610616
    級(jí)別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 141 個(gè)
    工控威望: 251 點(diǎn)
    下載積分: 1503 分
    在線時(shí)間: 232(小時(shí))
    注冊(cè)時(shí)間: 2014-07-16
    最后登錄: 2023-03-12
    查看zhuo610616的 主題 / 回貼
    5樓  發(fā)表于: 2014-10-29 08:18
    都是牛人啊
    fengrunsheng
    生活中本不缺少美,缺少的是發(fā)現(xiàn)美的眼睛!
    級(jí)別: 網(wǎng)絡(luò)英雄
    精華主題: 0
    發(fā)帖數(shù)量: 435 個(gè)
    工控威望: 7091 點(diǎn)
    下載積分: 19654 分
    在線時(shí)間: 478(小時(shí))
    注冊(cè)時(shí)間: 2014-09-07
    最后登錄: 2024-07-05
    查看fengrunsheng的 主題 / 回貼
    6樓  發(fā)表于: 2014-10-29 13:14
    引用
    引用第3樓659888714于2014-10-28 11:04發(fā)表的  :
    諸位大仙,近幾天上網(wǎng)不方便,我自己搞了個(gè)利用循環(huán)嵌套的,一看就太拉雜了慚愧啊。
    等隨后再總結(jié)一下大家的方法,謝謝啦
    以下我弄得代碼暫時(shí)以數(shù)字代替字母,當(dāng)排到12個(gè)數(shù)的時(shí)候就要算半個(gè)多小時(shí)了。
    看來(lái)要排出26個(gè)字母真的不可行了。
    ////////////////////////////
    .......

    多個(gè)嵌套循環(huán)的辦法是最容易想到的,并且是最笨的.
    為什么不用"堆棧加遞歸"
    fengrunsheng
    生活中本不缺少美,缺少的是發(fā)現(xiàn)美的眼睛!
    級(jí)別: 網(wǎng)絡(luò)英雄
    精華主題: 0
    發(fā)帖數(shù)量: 435 個(gè)
    工控威望: 7091 點(diǎn)
    下載積分: 19654 分
    在線時(shí)間: 478(小時(shí))
    注冊(cè)時(shí)間: 2014-09-07
    最后登錄: 2024-07-05
    查看fengrunsheng的 主題 / 回貼
    7樓  發(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) //字母還沒(méi)用完
            {
                    buff.push(stack.shift()); //選取字母
                    if(buff.length < 5) //還沒(méi)到5個(gè)字母
                    {
                            getComb(stack.slice(0), buff.slice(0)); //繼續(xù)選取
                    }
                    else if(buff.length == 5)
                    {
                            document.write(buff+"<br>"); //夠數(shù)量了,輸出
                    }
                    buff.pop(); //丟棄用過(guò)的字母
            }

            return;
    }
    getComb(stack, buff);
    </script>
    奇通科技
    級(jí)別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 44 個(gè)
    工控威望: 156 點(diǎn)
    下載積分: 2761 分
    在線時(shí)間: 59(小時(shí))
    注冊(cè)時(shí)間: 2011-02-21
    最后登錄: 2022-12-16
    查看奇通科技的 主題 / 回貼
    8樓  發(fā)表于: 2014-10-30 23:52
    搞 怎么復(fù)雜干嘛,直接和老板開(kāi)價(jià)你的能力值多少錢,老板接受你就值多少
    jcrajcr
    級(jí)別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 37 個(gè)
    工控威望: 148 點(diǎn)
    下載積分: 451 分
    在線時(shí)間: 120(小時(shí))
    注冊(cè)時(shí)間: 2012-04-20
    最后登錄: 2024-10-20
    查看jcrajcr的 主題 / 回貼
    9樓  發(fā)表于: 2014-10-31 15:00
    NND,我沒(méi)學(xué)過(guò)高級(jí)語(yǔ)言,現(xiàn)在做工控,工資年薪10W或以上