约瑟夫环(纯数学方法)

直接上代码


#include <stdio.h>

void fun(int n,int m)
{
    int p[10000] ;
    int i ,j ,t ;
    for(i=0;i<n;i++)
        p[i] = i+1 ;  //对全体进行编号
    t = 0 ;
    printf("出队顺序如下\n") ;
    for(i=n;i>=1;i--)
    {
        t = (t+m-1)%i ; //循环公式
        printf("%d ",p[t]) ;
        for(j = t+1;j<=i-1;j++)
            p[j-1] = p[j] ;
    }
    printf("\n") ;
}

int main()
{
    printf("输入人数n和出队编号m\n") ;
    int n, m ;
    scanf("%d%d",&n,&m) ;
    fun(n,m) ;
    return 0 ;
}



posted @ 2014-12-03 21:46  emoji  阅读(252)  评论(0编辑  收藏  举报