社区
JavaScript
帖子详情
n个人围成一圈,从1开始报数,每数到m号出去,问最后出去的应该是多少号?
sunboyljp
2006-11-13 02:05:53
兄弟们,能给出一个数学公式吗?拜托了
...全文
467
2
打赏
收藏
n个人围成一圈,从1开始报数,每数到m号出去,问最后出去的应该是多少号?
兄弟们,能给出一个数学公式吗?拜托了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunboyljp
2006-11-13
打赏
举报
回复
数学公式?
懒得去死
2006-11-13
打赏
举报
回复
*求围圈问题的详细算法和程序*/
/*17人围成一圈,编号为1,2,3,……,17,从1开始报数,报到3的倍数的人离开,
一直下去,直到最后剩下1人,求此人的编号 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a[17]={0};
int i, count, s;
for (i = 0;i < 17;i++)
{
a[i] = i + 1; /* 填空数组,编号是下标加一,注意C语言中的数组下标从0开始 */
}
i=0;
s=17; //用来记录退出圈外的人的数目
count=0; //计数器
while(s > 1)
{
for(i=0; i<17; i++)
if(a[i] != 0)
{
count++; //报一次数
if(count == 3) //每报到一次3,该人退出
{
printf("%d\n",a[i]); /* 把这个家伙打印出来 */
a[i] = 0;
count = 0; //计数器归零
s--;
}
}
}
for(i=0; i<17; i++)
if(a[i] != 0)
printf("最后一个是:%d\n",a[i]);
system("pause");
return 0;
}
算法2:
/*求围圈问题的详细算法和程序*/
/*17人围成一圈,编号为1,2,3,……,17,从1开始报数,报到3的倍数的人离开,
一直下去,直到最后剩下1人,求此人的编号 */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a[17]={0};
int i, j, s;
for (i = 0;i < 17;i++)
{
a[i] = i + 1; /* 填空数组,编号是下标加一,注意C语言中的数组下标从0开始 */
}
i=0;
s=17;
j=0;
while(s > 1)
{
if(a[i%17] != 0)
{
if((i+1-j)%3 == 0)
{
printf("%d\n",a[i%17]); /* 把这个家伙打印出来 */
a[i%17] = 0;
s--;
}
}
else
j++;
i++;
}
for(i=0; i<17; i++)
if(a[i] != 0)
printf("最后一个是:%d\n",a[i]);
system("pause");
return 0;
}
n
个人
围成
一圈
,从1开始数
n
个人
围成
一圈
从1开始数 数到k的人
出去
接着从1开始数 数到k
出去
最后
出来的人是谁 c语言程序设计教程(第二版)谭浩强 经典例题 对于学习c语言有很大帮助
详细讲解C语言经典例题:有n
个人
围成
一圈
,顺序排
号
。从第1
个人
开始
报数
(从1到3
报数
),凡报到3的人退出圈子,
问
最后
留下的是原来第几
号
的那位
C语言经典例题,有n
个人
围成
一圈
,顺序排
号
。从第1
个人
开始
报数
(从1到3
报数
),凡报到3的人退出圈子,
问
最后
留下的是原来第几
号
的那位
n
个人
围成
一圈
,从第一
个人
开始
报数
,数到m的人出列,再由下一
个人
重新从1开始
报数
, 数到m的人再出圈.java穷举法
n
个人
围成
一圈
,从第一
个人
开始
报数
,数到 m 的人出列,再由下一
个人
重新从 1 开始
报数
,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编
号
。输入输出:输入两个整数 n,m。输出一行n个整数,按顺序输出每个出圈人的编
号
。1≤m,n≤100。
经典算法题:有n
个人
围成
一圈
,顺序排
号
。从第一
个人
开始
报数
(从1到3
报数
),凡报到3的人退出圈子,
问
最后
留下的是原来第几
号
。
写在前面 题目: 有n
个人
围成
一圈
,顺序排
号
。从第一
个人
开始
报数
(从1到3
报数
),凡报到3的人退出圈子,
问
最后
留下的是原来第几
号
。 例如;如果10
个人
留下的是4
号
这里我们使用数组来实现它。 数组初始化值从1开始,如果有10
个人
,那么数组中存储的值就是[1-10] 每次删除一个元素,我们就把该元素的值标记为-1 (这里我们统一约定,值不为-1的元素就是可用元素) 10
个人
的话,删除到
最后
,就只剩下一个可用元素,它的值为4 实现的思路: 写代码前我们都要先做一番思考,搞清楚实现它的流程,如果在没有任何
约瑟夫环
问
题:有n
个人
围成
一圈
,顺序编
号
。从第1
个人
开始
报数
(从1-m
报数
),凡报到m的人退出圈子,
问
最后
留下的是原来第几
号
的那位?
约瑟夫环
问
题:有n
个人
围成
一圈
,顺序编
号
。从第1
个人
开始
报数
(从1-m
报数
),凡报到m的人退出圈子,
问
最后
留下的是原来第几
号
的那位?
JavaScript
87,904
社区成员
224,614
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章