fengrunsheng
生活中本不缺少美,缺少的是发现美的眼睛!
级别: 网络英雄
精华主题: 0
发帖数量: 435 个
工控威望: 7091 点
下载积分: 19654 分
在线时间: 478(小时)
注册时间: 2014-09-07
最后登录: 2024-07-05
查看fengrunsheng的 主题 / 回贴
楼主  发表于: 2014-10-28 08:43

我认识了一个程序员,讲到我们毕业生出来工资大概多少的时候,他出了一道题,说,这个题目的月薪是1000 ,如果做不出 说明你现在可能还需要努力突破¥1000 ,而不是突破¥5000

请用程序打印出a b c d e f g h i j k l这十二个字符的全部组合,每种组合占一行
你的结果可能会是
a b c d e
a b c d f
……
请用任何你熟悉的语言写出程序

10分钟内完成,
lizhiliang
级别: 家园常客
精华主题: 0
发帖数量: 416 个
工控威望: 505 点
下载积分: 12728 分
在线时间: 677(小时)
注册时间: 2010-07-29
最后登录: 2023-01-06
查看lizhiliang的 主题 / 回贴
1楼  发表于: 2014-10-28 08:50
循环嵌套?
659888714
没有所谓失败,除非你不再尝试。
级别: 略有小成
精华主题: 0
发帖数量: 201 个
工控威望: 341 点
下载积分: 14719 分
在线时间: 227(小时)
注册时间: 2014-06-21
最后登录: 2024-11-21
查看659888714的 主题 / 回贴
2楼  发表于: 2014-10-28 11:04
诸位大仙,近几天上网不方便,我自己搞了个利用循环嵌套的,一看就太拉杂了惭愧啊。
等随后再总结一下大家的方法,谢谢啦
以下我弄得代码暂时以数字代替字母,当排到12个数的时候就要算半个多小时了。
看来要排出26个字母真的不可行了。
////////////////////////////
#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); /////////计算完成百分比和时间//////////
t_current = time(NULL) ;
printf("已用时%.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("计算全部完成,总计用时%.0f秒。\n", difftime(t_current,t_start));
printf("结果保存在程序所在目录之下。\n");
}


本帖最近评分记录:
  • 下载积分:+1(fengrunsheng) 多个嵌套循环的办法是最 ..
    yamqq
    雅马哈,爱普生,电装机器人。
    级别: 网络英雄

    精华主题: 0
    发帖数量: 1717 个
    工控威望: 5539 点
    下载积分: 24588 分
    在线时间: 299(小时)
    注册时间: 2008-05-05
    最后登录: 2024-08-25
    查看yamqq的 主题 / 回贴
    3楼  发表于: 2014-10-28 11:56
    呵呵,除非这是搞底层研究的,搞应用还是工艺为王。
    这个人很懒,什么也没有留下!
    peteryi
    级别: 正式会员
    精华主题: 0
    发帖数量: 7 个
    工控威望: 97 点
    下载积分: 583 分
    在线时间: 2(小时)
    注册时间: 2014-10-28
    最后登录: 2019-07-31
    查看peteryi的 主题 / 回贴
    4楼  发表于: 2014-10-28 18:47
    看来我不值1000
    zhuo610616
    级别: 略有小成
    精华主题: 0
    发帖数量: 141 个
    工控威望: 251 点
    下载积分: 1503 分
    在线时间: 232(小时)
    注册时间: 2014-07-16
    最后登录: 2023-03-12
    查看zhuo610616的 主题 / 回贴
    5楼  发表于: 2014-10-29 08:18
    都是牛人啊
    fengrunsheng
    生活中本不缺少美,缺少的是发现美的眼睛!
    级别: 网络英雄
    精华主题: 0
    发帖数量: 435 个
    工控威望: 7091 点
    下载积分: 19654 分
    在线时间: 478(小时)
    注册时间: 2014-09-07
    最后登录: 2024-07-05
    查看fengrunsheng的 主题 / 回贴
    6楼  发表于: 2014-10-29 13:14
    引用
    引用第3楼659888714于2014-10-28 11:04发表的  :
    诸位大仙,近几天上网不方便,我自己搞了个利用循环嵌套的,一看就太拉杂了惭愧啊。
    等随后再总结一下大家的方法,谢谢啦
    以下我弄得代码暂时以数字代替字母,当排到12个数的时候就要算半个多小时了。
    看来要排出26个字母真的不可行了。
    ////////////////////////////
    .......

    多个嵌套循环的办法是最容易想到的,并且是最笨的.
    为什么不用"堆栈加递归"
    fengrunsheng
    生活中本不缺少美,缺少的是发现美的眼睛!
    级别: 网络英雄
    精华主题: 0
    发帖数量: 435 个
    工控威望: 7091 点
    下载积分: 19654 分
    在线时间: 478(小时)
    注册时间: 2014-09-07
    最后登录: 2024-07-05
    查看fengrunsheng的 主题 / 回贴
    7楼  发表于: 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)); //继续选取
                    }
                    else if(buff.length == 5)
                    {
                            document.write(buff+"<br>"); //够数量了,输出
                    }
                    buff.pop(); //丢弃用过的字母
            }

            return;
    }
    getComb(stack, buff);
    </script>
    奇通科技
    级别: 探索解密
    精华主题: 0
    发帖数量: 44 个
    工控威望: 156 点
    下载积分: 2761 分
    在线时间: 59(小时)
    注册时间: 2011-02-21
    最后登录: 2022-12-16
    查看奇通科技的 主题 / 回贴
    8楼  发表于: 2014-10-30 23:52
    搞 怎么复杂干嘛,直接和老板开价你的能力值多少钱,老板接受你就值多少
    jcrajcr
    级别: 探索解密
    精华主题: 0
    发帖数量: 37 个
    工控威望: 148 点
    下载积分: 451 分
    在线时间: 121(小时)
    注册时间: 2012-04-20
    最后登录: 2024-11-20
    查看jcrajcr的 主题 / 回贴
    9楼  发表于: 2014-10-31 15:00
    NND,我没学过高级语言,现在做工控,工资年薪10W或以上