C++问题 12个人围坐成一圈(编号手表顺时针是哪个方向方向依次为1~12),从1号开始数,沿手表顺时针是哪个方向方向

十六道C++编程趣题,答案代码已在本人其它文档中给出_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
十六道C++编程趣题,答案代码已在本人其它文档中给出
||文档简介
总评分4.3|
浏览量22958
&&本​人​最​近​在​深​入​学​习​C​+​+​编​程​,​收​集​的​一​些​编​程​趣​题​,​而​自​己​有​亲​自​编​程​解​决​的​,​特​贴​出​至​此​,​本​文​档​不​包​含​答​案​,​答​案​可​在​本​人​其​它​文​档​中​寻​找
大小:9.73KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢一道数学题有50个同学,头上分别戴有编号为1,2,3,.......,49,50的帽子,他们按编号从小到大的顺序,顺时针方向围成一圈做游戏,从1号开始按顺时针方向1,2,1,2,.....报数,报到奇_百度作业帮
一道数学题有50个同学,头上分别戴有编号为1,2,3,.......,49,50的帽子,他们按编号从小到大的顺序,顺时针方向围成一圈做游戏,从1号开始按顺时针方向1,2,1,2,.....报数,报到奇
一道数学题有50个同学,头上分别戴有编号为1,2,3,.......,49,50的帽子,他们按编号从小到大的顺序,顺时针方向围成一圈做游戏,从1号开始按顺时针方向1,2,1,2,.....报数,报到奇数 的同学退出圈子,报到偶数的同学留下,一圈下来后,接着又从编号最小的同学重新开始1,2.1.2....报数,报到 奇数的同学推出圈子,经过了若干轮后,圆圈上只剩下了一个同学,那么,这位同学原来的编号是多少?这题的思路是什么
50个同学.每次退出一半,最后剩1个. 32号----------------------------------1: 50->25(剩下的)
奇数去掉,剩下(2,4,6,8...48,50)2: 25->12(剩下的)
奇数去掉,剩下(4,8,12...48)3: 12->6 (剩下的)
奇数去掉,剩下(8,16,24,32,40,48)4: 6 ->3 (剩下的)
奇数去掉,剩下(16,32,48)5: 3 ->1 (剩下的)
奇数去掉,剩下(32)看出来规律了吗因为每次去掉的是其中的一半(有时候要取整)所以是2的n次方的那个就是最后去掉的
此数能够被2连续整除是:这位同学原来的编号是32。约瑟夫环实习报告:编号为1,2……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。 - 下载频道
- CSDN.NET
&&&&约瑟夫环实习报告:编号为1,2……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
约瑟夫环实习报告:编号为1,2……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
编号为1,2……,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止。
2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,有用户在键盘上输入演示程序中规定的运算命令,相应的输入数据和运算结果显示在其后。
3.程序执行的命令包括:
1)输入初始密码和人数 2)输入所有人的密码 3)显示输入的所有人的编号及相应的密码
4)输出出列密码及编号 5)结束
4.测试数据
(1)m=20, n=7, 7个人的密码依次为3,1,7,2,4,8,4
(2)m=20,n=1
(3)m=20,n=0
前面一组为常规数据,后面两组为边缘数据
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
开发技术下载排行1564人阅读
C/C++语言(25)
/* 邵发, 1309班,
作业07, 练习2
n只猴子围成一圈,顺时针方向从1到n编号。之后从1号开始顺时针方向让猴子从1到m依次报数,
凡报到m的出圈,取消资格。下一位再从1开始依次报数,
报出m者出圈,最后剩下的就是猴王。问这个猴王原序排在第几位。
#include &stdio.h&
#include &stdlib.h&
// 成员结点
typedef struct __Node
struct __Node*
int Play(int n, int m)
// 链表长度:n
// 构造循环链表
Node* lst = (Node*)malloc(sizeof(Node)*n);
for(i=0; i&n; i++)
lst[i].id = i+1;
if(i+1 == n)
lst[i].next = &lst[0];
lst[i].next = &lst[i+1];
Node* cur = &lst[0]; // 当前
Node* prev = &lst[n-1]; // 上一个
int count = 0;
while(prev != cur) //
if(count == m) // 数到m个
count = 0;
// 移除当前结点
prev-&next = cur-&
cur = cur-&
cur = cur-&
// 剩下的是胜者
int winner = cur-&
free(lst); // 释放内存
int ex07_02()
int winner = Play(5, 2);
printf(&winner is %d . \n&, winner);
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:152880次
积分:2604
积分:2604
排名:第7928名
原创:107篇
评论:42条
难度:高级
类型:技术教程
难度:高级
类型:技术教程
难度:高级
类型:技术教程
欢迎书版社与我联系:QQ 。我的官网,如果一切顺利,将提供一个知识库平台,提供“检索”与“答疑”功能。
《C/C++学习指南》,一本C/C++语法教材,与同类教材/图书相比,本书由业内人士撰写,由浅入深、循序渐近的讲解所有语法问题,并结合了工程实践进行分析。它的理念是让编程变得简单,让人一看就懂。它的目标是成为大中专院校、培训班、从业人员和爱好者的人手一本的必备教材。
(4)(11)(7)(2)(11)(1)(2)(20)(10)(1)(1)(13)(9)(11)(2)(2)约瑟夫问题:M个人围成一圈,从第一个人开始依次从1到N循环报数,每当报数为N时此人出圈,直到剩一人为止_百度知道
约瑟夫问题:M个人围成一圈,从第一个人开始依次从1到N循环报数,每当报数为N时此人出圈,直到剩一人为止
请按退序输圈原编号及留圈原编号请用TC编程非谢
提问者采纳
#include &stdio.h&#define M 65int main(){
int i,k,n,m,
int name[M];
scanf (&%d %d&,&n,&m);// n
for (i = 0;i &i ++)//编号
name[i]= i +1;
for (i = 0;i &i ++)
count = 0;
while (count & m) //每m输入
while (name[k] == 0)
k = (k + 1)%n;
k = (k + 1)%n;
if (k & 0)
printf (&%d\n&,name[k]);
name[k] = 0;
return 0;}哪明白提啊
提问者评价
基本看懂了,谢谢了
来自团队:
其他类似问题
为您推荐:
其他1条回答
#include &stdio.h&
#include&stdlib.h&
int main()
int n, m, i, s = 0;
printf (&M N = &);
scanf(&%d%d&, &m, &n);
for (i = 2; i &= i++)
s = (s + n) %
printf (&\nThe winner is %d\n&, s+1);
return 1; }
约瑟夫问题的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 手表顺时针方向 的文章

 

随机推荐