样例输入3  输出2

输入100   输出91

代码及分析:

#include

int main()

{

int i,n,N,out,a[1000];

out=i=n=0;            //用out记录退出圈子的人,初始化0;

printf("输入约瑟夫圈大小");

scanf("%d",&N);

for(i=0;i

{

a[i]=1;

}

i=0;

while(out!=N-1)          //利用while循环找到剩下的人的编号;直到出圈的人=N-1时候停止;

{

if(a[i]==1)           //由于a[i]=1表示在圈内,则只要有a[i]==1,并令n++,记录下他报的数;

{

n++;

}

if(n==3)            //由于报到3即出圈,后继续从1开始报;由于只要报到n=3,则该人即出圈,则用out++来记录出圈的人数;并且将该人所在a[i]从1                      改为0,表示该人已经出圈,下一次循环时该人不参与报数;

{

a[i]=0;n=0;out++;

}

i++;

if(i==N)             //由于N个人围成了一个圈,则如果报到了第N个人,则下一个人为编号1,则赋值i=0;继续下一次查找;

{

i=0;

}

}

for(i=0;i

if(a[i]==1)

{

printf("最后剩下的是第%d个人",i+1);break;

}

return 0;

}

100个人围成一圈c语言,C语言 约瑟夫圈问题:N个人围成一圈,从第一个人开始按顺序报数并编号1,2,3,……N,然后开始从第一个人转圈报数,凡是报到3的退出圈子。则剩下的最后一个人编号是多少。...相关推荐

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

    3.耶稣有13个门徒.当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1.2,3.1,2,3.... 凡是报到"3"就退出圈子.最后留在圈子 ...

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

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

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

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

  4. 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; //通过计算器来模拟报数i ...

  5. 程序员面试题经典问题——耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:123凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。

    package com.softeem.project1;public class Test1 {public static void main(String[] args) {//定义数组保存13位 ...

  6. 13个人围成一圈,从第1个人开始顺序报号1,2,3.凡报到3者退出圈子。找出最后留在圈子中的人原来的序号。要求用链表实现。

    13个人围成一圈,从第1个人开始顺序报号1,2,3.凡报到3者退出圈子.找出最后留在圈子中的人原来的序号.要求用链表实现. #include <stdio.h> #include < ...

  7. 13个人围成一圈,从第1个人开始顺序报号1,2,3。 凡报到3者退出圈子

    #include <stdio.h> #include <stdlib.h> #define N 13 /* 13个人围成一圈,从第1个人开始顺序报号1,2,3. 凡报到3者退 ...

  8. 海大910-2014年编程题1:13个人围成一圈, 从第1个人开始顺序报号1, 2, 3。凡报到3者退出圈子。找出最后 留在圈子中的人原来的序号。要求用链表实现。(15分)

    题目 本题是2014年中国海洋大学研究生入学考试910高级程序设计程序设计题第1题. 题目: 13个人围成一圈, 从第1个人开始顺序报号1, 2, 3.凡报到3者退出圈子.找出最后 留在圈子中的人原来 ...

  9. c语言】13个人围成一圈,从第1个人开始顺序报号1,2,3.凡报到3者退出圈子。找出最后留在圈子中的人原来的序号

    题目(摘自谭浩强的C语言):有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人. 解法思路:首先不要将思维局限在一圈人,可以先将n个 ...

最新文章

  1. webpack版本查看_浅谈webpack技术
  2. vim 双剑合璧,天下无敌(笔记)
  3. elasticsearch如何安全重启节点
  4. Linux命令(4):cat命令
  5. 数据结构实验之二叉树四:(先序中序)还原二叉树
  6. 基于TCP和多线程实现无线鼠标键盘-GestureDetector
  7. java多线程的底层实现_多线程的底层实现机制 - 欢迎来到古怪匹诺曹的开发世界 - OSCHINA - 中文开源技术交流社区...
  8. 关于博主 | 联系博主
  9. 事件捕获、冒泡、绑定、赋值、委托、兼容、滚轮
  10. 2022 SpringBoot的房屋租赁平台 房屋展示平台 留学生房屋租赁平台
  11. 创建数据库以及该数据库下的表单
  12. vi编辑文件时如何批量替换字符串
  13. 全网音乐下载,抖音热歌、无损音乐下载
  14. Android中的Apk的加固(加壳)原理解析和实现
  15. STM8单片机的启动过程。
  16. win7sp1怎么共享计算机,win7怎么升级到sp1?win7可以直接升级win7 sp1版本吗
  17. Android 获取人民币符号
  18. 高通APQ8009w LTR303_ALS 光感(sensor)兼容模式调试
  19. 使用js制作完整轮播图 (解决最后一张切换到前面一张的动画问题)
  20. 男人也离不开维生素(转)

热门文章

  1. Unity基础知识、Transform类
  2. 【转】Linux内核大讲堂 (一) 设备驱动的基石驱动模型(1)
  3. 基于web assembly (WASM) 的H265 Web播放器
  4. sql delete删除表的数据
  5. 【深度学习知识点扫盲】病态、病态条件
  6. L0范数,L1范数,L2范数,Lp范数,无穷范数,Frobenius 范数表示意义
  7. Python实现小病毒
  8. VScode配置C语言环境以及VScode中变量说明
  9. Win10 cmd 同步系统时间命令
  10. Linux下基于TCP的简易文件传输(socket编程)