标题:约瑟夫循环问题
取消只看楼主
hyq加油加油
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-10-26
结帖率:0
已结贴  问题点数:20 回复次数:2 
约瑟夫循环问题
假设41个人围成一圈,其中有m个你的朋友不想死掉,从第一个开始报数,第3个将被杀掉。为了保护自己和m个朋友,现在编写程序,求出如何安排自己和m个朋友的初始位置。
搜索更多相关主题的帖子: 编写程序 约瑟夫 朋友 如何 
2015-10-26 21:52
hyq加油加油
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-10-26
得分:0 
回复 2楼 蓝色风暴cl
没有啊,什么书上有啊???谢谢!!!
2015-11-02 22:12
hyq加油加油
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-10-26
得分:0 
有问题,明显不对。
#include<stdio.h>
#define size 100
void main()
{
    int person[size];
    int i, j,m;
    int arrayLen;
    int start=1, overNum;
    int deleNum;
    int total;
    printf( "请输入圆桌上人的总数: " );
    scanf( "%d", &arrayLen );
    printf( "\n" );
    if( ( arrayLen > size ) || ( arrayLen < 0 ) )
    {
        printf( "超出范围,请重新输入: " );
        scanf( "%d", &arrayLen );
        printf( "\n" );
    }
    for( i = 0; i < arrayLen; i++ )
    {
        person[i] = i+1;
    }
    printf( "你输入的数据的顺序为: \n" );
    for( i = 0; i < arrayLen - 1; i++ )
        printf( " %d ==>", person[i] );
    printf( "%d \n", person[arrayLen - 1] );
    printf( "\n" );
    start = start - 1;
    printf( "请输入相邻两出列人之间的间隔: " );
    scanf( "%d", &overNum );
    printf("想让几个人活下来:");
    scanf("%d",&m);
    printf( "\n" );
    total = arrayLen-1;
    printf( "程序运行后,出列人的顺序为:\n\n" );
    for( i = 0; i < total-m; i++ )
    {
        if ( arrayLen == m )
            printf( "%d", person[0] );
        else
        {
            deleNum = ( start + overNum) % arrayLen; /* 保证循环 */
            printf( "%5d", person[deleNum] );
            for ( j = deleNum; j < arrayLen; j++ ) /* 将出列元素后面的各元素前移 */
                person[j] = person[j+1];
            start = deleNum;
            arrayLen = arrayLen - 1; /* 移动完毕后,数组长度减1 */
        }
    }
    printf("\n存活下来的人的序号:");
    for(i=0;i<m;i++)
        printf("%5d",person[i]);
    printf( "\n\n" );
}
2015-11-09 21:57



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




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

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