n个人围成一圈,顺序编号。从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号。
问题描述
n个人围成一圈,顺序编号。从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号。
样例输入:(第一行输入)
6 3(两个输入数据之间有空格)
样例输出:(换行输出)
1
#include<stdio.h>
#include<stdlib.h>
#define max 100
int loop[max+10];
int main(){ int n,m,i;scanf("%d%d",&n,&m);for(i=0;i<n;i++)loop[i]=i+1;int dest=0;for(i=0;i<n;i++){ int count=0;while(count<m){ while(loop[dest]==0)dest=(dest+1)%n;count++;dest=(dest+1)%n;}dest--;if(dest<0)dest=n-1;if(i==n-1)printf("%d\n",loop[dest]);loop[dest]=0;}return 0;}
n个人围成一圈,顺序编号。从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号。相关推荐
- C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题
1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈:下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序. 考虑问题: 报到T的人出圈,怎么表示出 ...
- 有n个人围成一圈,顺序排号,从第一个人开始报数(1-3报数),凡是报数为3的人退出圈子,问最后留下的人原来的编号是多少?
有n个人围成一圈,顺序排号,从第一个人开始报数(1-3报数),凡是报数为3的人退出圈子,问最后留下的人原来的编号是多少? 花了半个下午搞出来的代码,调试了一会,一切正常,感觉还不错! '''解题思路: ...
- 习题 6.5 有n个人围成一圈,顺序排号。从第1个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。
C++程序设计(第三版) 谭浩强 习题6.5 个人设计 习题 6.5 有n个人围成一圈,顺序排号.从第1个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号. 代码块: # ...
- (C++)有n个人围成一圈,顺序排号。从第一个人开始报数(1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。
(C++)有n个人围成一圈,顺序排号.从第一个人开始报数(1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号. #include<iostream> #include< ...
- 1056: 约瑟夫问题【n人围成一圈,报数为3的人退出圈子,问最后留下的人原来的编号。】
Description 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. Input 初始人数n Output 最后一人的初始编号 ...
- C语言>>有n个人围成一圈,顺序排号,从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。
使用工具: Dev-C++ 5.11 解题思路: 比如有4个人报数,报到3的人会退出圈子,那第四个人就应该报1,第一个人报2,依此类推.题中提到的退出圈子,在代码中并不是真正的退出member[100 ...
- cqupt题库 n个人围成一圈,顺序编号。从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号。 程序运行示例: 6 3(两个输入数据之间有空格) 1
n个人围成一圈,顺序编号.从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号. 程序运行示例: 6 3(两个输入数据之间有空格) 1 输入格式:scanf("% ...
- (C语言)有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
题目描述 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. 输入 初始人数n 输出 最后一人的初始编号 样例输入 3 样例输出 2 ...
- 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
题目描述 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. 输入 初始人数为n. 输出 最后一个人的初始编号. 样例输入 3 样例 ...
- 题目:运用指针知识,有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的那位是原来的第几号?
题目:运用指针知识,有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的那位是原来的第几号? 一.需求分析 求出从未报到3的人的编号 二.思维节点 1.如 ...
最新文章
- win10装linux分区格式化硬盘,windows10 下硬盘安装centos7.0 – MBR硬盘分区格式
- linux下查询端口,进程的状态以及netstat的参数意义
- java和python的比较-Python和Java就业前景对比
- html 入门例子(一)
- nodejs html引用js_NodeJS与模块系统
- MySQL获取Schema表名和字段信息
- 结构体里有指针 scanf赋值_C++|链表中常见的链表节点指针操作
- 河北职称计算机Excel一,2012年河北省职称计算机Excel操作练习一.doc
- 114_Power Pivot 销售订单之销售额、成本、利润率相关
- ASP.NET MVC中,通用的异常处理
- 「镁客·请讲」HelloEOS梓岑:嘻哈外表下的区块链式达尔文主义
- Exception.ToString()使用及其他方法比较
- php 生成小程序码
- Mac安装/卸载brew
- Linux可以打开cdr文件吗,CDR是什么格式
- 等待是一个过程,每一种坚守都是幸福
- Gopher Daily (2020.05.02) ʕ◔ϖ◔ʔ
- 下载在线阅览的pdf文件
- Linux framebuffer双缓冲防止闪烁
- 【034】翼辉信息获得“核高基”重大专项支持