华为2014校园招聘机考第二题

华为2014校园招聘机考第二题

ID:39564982

大小:17.50 KB

页数:4页

时间:2019-07-06

华为2014校园招聘机考第二题_第1页
华为2014校园招聘机考第二题_第2页
华为2014校园招聘机考第二题_第3页
华为2014校园招聘机考第二题_第4页
资源描述:

《华为2014校园招聘机考第二题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、//zsl//华为2014校园招聘第二道上机题//杀人环问题//总共n人排成一个圆环,按圆环顺序每次数到第m个人就杀掉,最后剩下谁?//2013-09-14//Thisisastupidmethodtosolvethisproblem.//#include#include#include#defineMAX_NUM100//最多能处理的人数是100,其实可以定的更大,随自己更改。#defineALIVE'1'#defineDEAD'0'#defineDISPLAY1//要求的完成的函

2、数//入口参数:n-->总共的人数//m-->每次数到第m个人就杀掉//返回值:最后活着的人的编号//intsurvive(intn,intm){intkilledpos;//杀掉某些人之后剩余的人开始/结束的编号intlastcount;//上一次杀人的位置intnext1;//下一个活着的人的位置intcountkilled;//统计杀掉的人数,,它最大值为n-1;intcount0tom;inti,j;//设置用来显示杀人步骤的变量#ifDISPLAYintk;#endif////构造一个字符串描述杀人环的生死状态//活着的人-->1

3、,死的人-->2charpeople[MAX_NUM]="";//Initialcountkilled=0;for(i=1;i<=n+1;i++){people[i]=ALIVE;}//beginkillingkilledpos=0;do{//开始一轮循环,杀掉一个人for(count0tom=0,i=killedpos,j=i+1;;){//每次数数开始都现计算出下一个活着的人的位置//并从这个位置开始数数for(j=i+1;;j++){//如果下一个位置指向了最后一个人的下一位,就从头开始数起if(j==n+1){j=1;}if(peo

4、ple[j]==ALIVE){next1=j;break;}}i=next1;//开始数数了if(people[i]=ALIVE){count0tom++;//如果数到了m,则杀掉这个人,//死掉的人数增加一个//并且跳过开始下一轮数数if(count0tom==m){people[i]=DEAD;count0tom=0;killedpos=i;countkilled++;//显示这一次谁被干掉了#ifDISPLAYprintf("第%d次判生死:",countkilled);for(k=1;k<=n;k++){if(people[

5、k]==ALIVE)//活着的人{printf("%d",k);}else{if(k==killedpos){printf("$%d$",k);//刚刚被杀的人}elseprintf("_%d_",k);//之前被杀的人}}printf("----------------------------------------------");#endif//显示完毕//如果死了n-1个,则跳出杀人数数if(countkilled==n-1){//break;//找到活着的人的位置for(j=1;j<=n&&people[j]==DEAD;

6、j++){}returnj;}}}}}while(countkilled<=n-1);//找到活着的那个人的位置//for(j=1;j<=n&&people[j]==DEAD;j++){}returnj;}//测试主函数//程序的执行方式是://survive.exeNM//intmain(intargc,charargv[]){intn,m;intsurvivepos;//判断是不是有3个参数if(argc!=3){printf("Usage:%snum1num2",argv[0]);exit(1);}n=atoi(argv[1]

7、);m=atoi(argv[2]);printf("Working...");survivepos=survive(n,m);printf("总共有%d人,每次杀掉第%d个人,最终留下的是-->%d",n,m,survivepos);printf("====================GameOver====================");return0;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。