标题:C语言 实现约瑟夫循环问题
只看楼主
傻瓜菜
Rank: 2
来 自:earth
等 级:论坛游民
帖 子:73
专家分:66
注 册:2011-10-4
结帖率:94.44%
 问题点数:0 回复次数:6 
C语言 实现约瑟夫循环问题
题目描述
约瑟夫环问题:设有n(n≤1000)个人围坐一圈,并按顺时针方向1—n编号。从第s个人开始进行报数,报数到第m个人,此人出圈,再从他的下一个人重新开始从1到m的报数进行下去 ,直到只剩一个人为止。

输入
人数n

从第s个人开始报数s

报到第几个数m

输出
剩下的最后一个人的编号

样例输入
9
1
3
样例输出
1


菜鸟乞求大虾帮忙
搜索更多相关主题的帖子: 约瑟夫 C语言 顺时针 
2011-11-06 22:03
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
得分:0 
1,用数组,提出一个人后,其他人前移,n-1。
2,建一个循环链表,非常形象的操作。

我知道,人格可以鄙视人民币,但是人民币可以打败人格。
2011-11-06 23:15
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
得分:0 
1,用数组,踢出一个人后,其他人前移,n-1。
2,建一个循环链表,非常形象的操作。

我知道,人格可以鄙视人民币,但是人民币可以打败人格。
2011-11-06 23:15
a2659633
Rank: 2
等 级:论坛游民
帖 子:25
专家分:25
注 册:2010-12-15
得分:0 
手机误操作……
起码你也试着写一下吧。

我知道,人格可以鄙视人民币,但是人民币可以打败人格。
2011-11-06 23:17
lin471306489
Rank: 4
等 级:业余侠客
帖 子:136
专家分:247
注 册:2011-8-16
得分:0 
程序代码:
void josphus(int *array, int s, int m)
{
    int s1, i, w;
    s1 = s - 1;
    for(i=n; i>0; i--)
    {
        s1 = (s1+m-1) % i; //找到要删的元素
        w = array[s1];
        delete(array, s1);// 定义一个删除数组的元素  
    }

 
}
Josephus 很多书本和资料都有介绍,可以参考下
2011-11-07 00:16
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
这么懒,都知道是约瑟夫,你是百度上搜一下,有很多方法和代码

总有那身价贱的人给作业贴回复完整的代码
2011-11-07 07:27
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
这么懒,都知道是约瑟夫,你去百度上搜一下,有很多方法和代码

总有那身价贱的人给作业贴回复完整的代码
2011-11-07 07:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-354462-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.194984 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved