C语言面试题-----耶稣问题
来源:互联网 发布:iphone导入视频到mac 编辑:程序博客网 时间:2024/05/17 13:44
<span style="font-size:18px;"> // 耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。请找出它原来的序号。 //解题思路: //(1)如何表示13个人? 通过数组表示,有13个元素,赋初值是,可以赋值为1~13; //(2)如何描述报数? 使用count值统计当前是第几个人? //(3)如何将人踢出,标示已经死掉的人? 将元素的值置为0. //(4)如何及时获取当前活着的人?变量number用来记录当前活着的人 //(5)使用哪种循环结构? 采用while //(6)循环条件是什么?当前活着的人数大于1 //1. number > 1 //(7)如何循环报数? 循环变量 i,记录当前第几个在报数,如果到最后一个人,报数完成之后,让第一个人继续报数,i=0. int a[13] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; int count = 0;//用来记录报数 int number = 13; //用来记录活着的人; int i = 0;//记录第几个人正在报数 while (number > 1) { //如果a[i],没有被剔除掉,报数有效 if (a[i] != 0) { count++; } if (count == 3) { a[i] = 0;//剔除掉,game over number--;//存活人数及时更新 count = 0;//将计数器清零. } i++;//记录报数的下一个人 if (i == 13) { i = 0;//当超出报数的范围时,立即将报数人置为第一个人. } } for (int i = 0; i < 13; i++) { if (a[i] > 0) { printf("%d", a[i]); } }</span>
0 0
- C语言面试题-----耶稣问题
- 【C语言】耶稣门徒问题求解——谁是叛徒
- C语言面试题---逻辑短路问题
- C语言-耶稣门徒
- C语言面试题
- C语言面试题
- C语言面试题
- C语言面试题
- c语言面试题
- c语言面试题
- C语言面试题
- c语言面试题
- C语言面试题
- C语言面试题
- c语言面试题
- C语言面试题
- C语言面试题
- C语言面试题
- 禁止屏幕翻转或翻转时禁止OnCreate
- VS2010/MFC入门编程十七(多线程的创建,包括工作线程和用户界面线程)
- Protel各层定义大全
- Gson使用
- 有一字符串,包含数字与字母,编程去除数字。要求:1要求在原字符串中操作 2、使用指针处理
- C语言面试题-----耶稣问题
- Android中的一些编码规范
- 杭电2036 划分成三角形,要记得最后一个等于第一组数据,防止重复相加,
- erlang 数据类型
- Ceph学习-CRUSH算法介绍(二)
- HDU1233 还是畅通工程 【最小生成树Prim】
- GL-iNet刷纯净OpenWrt
- ubuntu 实现三层交换机的VLAN功能
- uva 10047 Problem A: The Monocycle (搜索:BFS+优先队列)