100个人围成一圈c语言,C语言 约瑟夫圈问题:N个人围成一圈,从第一个人开始按顺序报数并编号1,2,3,……N,然后开始从第一个人转圈报数,凡是报到3的退出圈子。则剩下的最后一个人编号是多少。...
样例输入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的退出圈子。则剩下的最后一个人编号是多少。...相关推荐
- C语言必会面试题(3、耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)...
3.耶稣有13个门徒.当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1.2,3.1,2,3.... 凡是报到"3"就退出圈子.最后留在圈子 ...
- 耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒
问题: 耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3--,凡是报到"3"就退出圈子,最后留在圈内 ...
- 3 耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的
// 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; //通过计算器来模拟报数i ...
- 程序员面试题经典问题——耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:123凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。
package com.softeem.project1;public class Test1 {public static void main(String[] args) {//定义数组保存13位 ...
- 13个人围成一圈,从第1个人开始顺序报号1,2,3.凡报到3者退出圈子。找出最后留在圈子中的人原来的序号。要求用链表实现。
13个人围成一圈,从第1个人开始顺序报号1,2,3.凡报到3者退出圈子.找出最后留在圈子中的人原来的序号.要求用链表实现. #include <stdio.h> #include < ...
- 13个人围成一圈,从第1个人开始顺序报号1,2,3。 凡报到3者退出圈子
#include <stdio.h> #include <stdlib.h> #define N 13 /* 13个人围成一圈,从第1个人开始顺序报号1,2,3. 凡报到3者退 ...
- 海大910-2014年编程题1:13个人围成一圈, 从第1个人开始顺序报号1, 2, 3。凡报到3者退出圈子。找出最后 留在圈子中的人原来的序号。要求用链表实现。(15分)
题目 本题是2014年中国海洋大学研究生入学考试910高级程序设计程序设计题第1题. 题目: 13个人围成一圈, 从第1个人开始顺序报号1, 2, 3.凡报到3者退出圈子.找出最后 留在圈子中的人原来 ...
- c语言】13个人围成一圈,从第1个人开始顺序报号1,2,3.凡报到3者退出圈子。找出最后留在圈子中的人原来的序号
题目(摘自谭浩强的C语言):有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那个人. 解法思路:首先不要将思维局限在一圈人,可以先将n个 ...
最新文章
- webpack版本查看_浅谈webpack技术
- vim 双剑合璧,天下无敌(笔记)
- elasticsearch如何安全重启节点
- Linux命令(4):cat命令
- 数据结构实验之二叉树四:(先序中序)还原二叉树
- 基于TCP和多线程实现无线鼠标键盘-GestureDetector
- java多线程的底层实现_多线程的底层实现机制 - 欢迎来到古怪匹诺曹的开发世界 - OSCHINA - 中文开源技术交流社区...
- 关于博主 | 联系博主
- 事件捕获、冒泡、绑定、赋值、委托、兼容、滚轮
- 2022 SpringBoot的房屋租赁平台 房屋展示平台 留学生房屋租赁平台
- 创建数据库以及该数据库下的表单
- vi编辑文件时如何批量替换字符串
- 全网音乐下载,抖音热歌、无损音乐下载
- Android中的Apk的加固(加壳)原理解析和实现
- STM8单片机的启动过程。
- win7sp1怎么共享计算机,win7怎么升级到sp1?win7可以直接升级win7 sp1版本吗
- Android 获取人民币符号
- 高通APQ8009w LTR303_ALS 光感(sensor)兼容模式调试
- 使用js制作完整轮播图 (解决最后一张切换到前面一张的动画问题)
- 男人也离不开维生素(转)