题目: 耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。(用C语言)

#include <stdio.h>

#define M 15   //M表示人数,N表示报号退出的数字

int main()

{

int  str[M];

for(int a = 0;a<M;a++)   //for循环赋值

{

str[a]=a+1;

}

int number = M,count = 0,i =0;

while (number > 1)  //直到只剩一人退出循环

{

if (str[i] != 0)//最后没有的时候就不用计算了

count++;

if (count == 3) {

str[i] = 0;//退出圈子的人数值都标记为0

count = 0;//count重新赋值为0,重新报号

number--;//人数减1

}

i++;

if (i == M)

i = 0; //M人报号一遍后重新报号

}

for (int i = 0; i< 15; i ++)// 看看谁没退出,退出后赋值都为0 了

{

if (str[i] > 0) printf("出卖耶稣叛徒的序号为:%d\n",str[i]);

}

return 0;

}

时间: 2024-08-11 03:36:16

题目: 耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。(用C语言)的相关文章

C语言必会面试题(3、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)

3.耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3....凡是报到"3"就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒.请找出它原来的序号. int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13}; int number = 13;//记录当前人数 int count = 0;//1,2,3报数 int i = 0; while (number > 1) { if

C语言必会面试题(3、耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)

3.耶稣有13个门徒.当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1.2,3.1,2,3.... 凡是报到"3"就退出圈子.最后留在圈子内的人就是出卖耶稣的叛徒.请找出它原来的序号. int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13}; int number = 13;//记录当前人数 int count = 0;//1,2,3报数 int i = 0; while (number > 1) { if

3、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛

int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13}; int number = 13; //记录圈内剩余的人数 int count = 0; //通过计算器来模拟报数 int i = 0; //循环变量 while (number > 1) { if (a[i] != 0) { count++; } if (count == 3) { a[i] = 0; //让该元素置0,模拟踢出圈子 count = 0; //然后计数器重新归0 number--; //踢出

300个人围成一个圈,从某个指定的人开始报数(1--3),凡是数到3的人退出圈子

public static void main(String[] args) { /* * 300个人围成一个圈,从某个指定的人开始报数(1--3),凡是数到3的人退出圈子, * 问最后剩下的一个是从指定位置开始计数的第几个人? */ int num[]=new int[300]; int i=0; // 数组的下标计数器 0---299 int count=0; // 退出的人数计数器 0---299 int n=1; // 数数的计数器 1---3 while(count<299){ //

为什么STM32同时开启2个通用定时器,TIM2和TIM3,其中有一个TIM3定时器进不了中断。

TIM2和TIM3配置一样,NVIC优先级设置不同. 原来的: int main(void){   sys_init(); systick_config(); TIM3_init(); TIM2_init(); } 解决方法是:修改了mian程序中: int main(void) { sys_init(); systick_config(); TIM2_init(); TIM3_init(); } 为什么只调换了TIM2和TIM3的初始化程序就可以了呢?好奇怪. 为什么STM32同时开启2个通用

全球最神秘的5大黑客组织,其中有一个是中国人

在我心里,黑客是一个神奇的人物,黑客组织更是一个超级神秘的团队.他们拥有世界上最先进的计算机技术.今天让我来冒险揭开全球最神秘的5大黑客组织,其中有一个是中国人. 1.匿名者黑客组织(澳大利亚) 创立时间2003年,总部设在悉尼,是全球最神秘的黑客组织之一.有趣的是,他们大部分是美国人,他们是一群电脑黑客爱好者聚集一起,没有固定领袖人物,他们的成员在全球范围内对政府和企业部门的网站和计算机网络进行了一系列高度公开的攻击后宣布,他们的无情攻击和袭击将不会停止. Anonymous渗入了美国联邦贸易

CentOS6.5 QT5.3 找不到GLIBCXX3.4.15解决方法

下载安装后 启动的时候提示 GLIBCXX_3.4.15,发现libstdc++.so.6的版本过, 在安装qt-creator的时候运行这个IDE就出现了这个问题,是由于libstdc++.so.6的版本过低,需要下载个新的重新建立软连接. 我这里是 更新里 gcc 版本到 4.8 解决的,更新之后做里链接 ln -s /usr/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6.18 下面是详细的解决过程 1.[分析过程] linux 执行str

java例题_37 有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子, 3 问最后留下的是原来第几号的那位。

1 /*37 [程序 37 报数] 2 题目:有 n 个人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出圈子, 3 问最后留下的是原来第几号的那位. 4 */ 5 6 /*分析1====错误分析,没有注意到要退出圈子!!! 7 * 1.用一个数组存放n个1,从头开始报数 8 * 2.声明一个计数器,报数为3时,数组中的数赋为0,计数器重置 9 * 3.一直直到还剩下最后一个不为0的数,这个数的角标加1就是原来的几号 10 * 11 * 分析2:----利用A

输入一个任意位数的的整数, 从个位开始输出每一位的数

题目要求: 输入一个任意位数的的整数, 从个位开始输出每一位的数,  每次输出的一位数可以用%10来取,然后通过把数除10去掉已输出的位 代码如下 #include <stdio.h> int main() { int number; scanf("%d",&number); while(number) { printf("%d ",number%10); number /= 10; } return 0; }