搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 新手 学数组求解用数组解决约瑟夫问题。。。。。不是为了求作业,是在想了好久,无法解决。。对于我好难啊,
标题:
新手 学数组求解用数组解决约瑟夫问题。。。。。不是为了求作业,是在想了 ...
只看楼主
亢奋青年
来 自:遵义市
等 级:
论坛游民
帖 子:64
专家分:28
注 册:2013-11-2
结帖率:
75%
楼主
已结贴
√
问题点数:10 回复次数:6
新手 学数组求解用数组解决约瑟夫问题。。。。。不是为了求作业,是在想了好久,无法解决。。对于我好难啊,
1~M号围成一圈,第一个人开始报数,数到N的人出圈。。。。。直到最后一个人为止。。依次输出出圈人的编号,M预先设定,n键盘输出。如M=10,你n=5,依次输出为2,10,6,2,9,8,1,4,7,3.
刚开始我的思路是;到n后,把数组位子改过,但好复杂。。。于是又想到如果把踢出的数弄为负数,就与开始的不同,但还是没解决调啊
搜索更多相关主题的帖子:
约瑟夫
键盘
2013-11-23 17:56
azzbcc
来 自:江西财经大学
等 级:
贵宾
威 望:
81
帖 子:3293
专家分:12919
注 册:2012-11-4
第
2
楼
得分:10
int [M] = {1, 2, 3... M};
int count = M;
int ip = -1; //被踢的人的下标
while(count > 1)
{
for (i = 0;i < N;++i)
{
ip = (ip + 1) % M;
while (a[ip] == 0) ip = (ip + 1) % M;
}
print a[ip];
a[ip] = 0, count--;
}
[fly]存在即是合理[/fly]
2013-11-23 21:04
亢奋青年
来 自:遵义市
等 级:
论坛游民
帖 子:64
专家分:28
注 册:2013-11-2
第
3
楼
得分:0
回复 2楼 azzbcc
没有看的懂啊、、、
my time,my chips.
2013-11-24 20:26
亢奋青年
来 自:遵义市
等 级:
论坛游民
帖 子:64
专家分:28
注 册:2013-11-2
第
4
楼
得分:0
回复 2楼 azzbcc
不是要报数到n啊,
my time,my chips.
2013-11-24 20:27
亢奋青年
来 自:遵义市
等 级:
论坛游民
帖 子:64
专家分:28
注 册:2013-11-2
第
5
楼
得分:0
回复 2楼 azzbcc
新手啊,版主
my time,my chips.
2013-11-24 20:30
azzbcc
来 自:江西财经大学
等 级:
贵宾
威 望:
81
帖 子:3293
专家分:12919
注 册:2012-11-4
第
6
楼
得分:0
就是依照你的思路写的,我把 T出去的人的下标改为 0
在循环中注意把 值为 0的下标跳过就行了
ip = (ip + 1) % M; //这句代码是为了循环,比如 ip = M - 1 时,语句执行后ip = 0
[fly]存在即是合理[/fly]
2013-11-24 21:13
亢奋青年
来 自:遵义市
等 级:
论坛游民
帖 子:64
专家分:28
注 册:2013-11-2
第
7
楼
得分:0
回复 6楼 azzbcc
还是没有看的懂啊,约瑟夫问题啊,刚开始时的ip=-1;什么意思啊,围城一圈M个好,从一数到n 啊。。。还是不懂啊
my time,my chips.
2013-11-25 22:23
7
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-424069-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.547998 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved