标题:请高手指教提示思路,编程实现
只看楼主
gengning938
Rank: 2
等 级:论坛游民
帖 子:12
专家分:10
注 册:2010-5-13
结帖率:60%
已结贴  问题点数:15 回复次数:2 
请高手指教提示思路,编程实现
有n个人,从第一个人开始报数,报到m的出列,再从下一个开始报数,直到最后一个人为幸运者;请高手提示思路,如何编程实现
搜索更多相关主题的帖子: 思路 提示 指教 
2010-05-19 18:52
ww稻草人
Rank: 5Rank: 5
来 自:陕西西安
等 级:职业侠客
帖 子:57
专家分:309
注 册:2010-5-11
得分:15 
    这是约瑟夫环问题,用n记录人数,再用一个循环控制数数即用i累加,然后用一个m值记录要报到的密码,当报到的数i等于要报道的密码m时,将此时的报到i的人的密码赋给m,然后让i置为1,删除此人;重新开始循环报数,当n等于1时结束。

我的博客  http://blog..cn/daocaoren020
2010-05-19 19:04
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
得分:0 
#include<stdio.h>
int main()
{
    int i,j,n,m;
    while(scanf("%d%d",&n,&m)!=EOF){
        for(j=1,i=2;i<=n;i++)
            j= j+m>i ? j+m-i:j+m;
        printf("remain %d\n",j);
    }
    return 0;
}

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2010-05-19 19:06



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




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

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