约瑟夫环(Joseph)编程内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约瑟夫环(Joseph)编程内容相关的知识,希望对你有一定的参考价值。

#include <stdio.h>

void main()
{
int arr[100];
int i=0,interval=0,qty=0,count=0,count1=0; //count数未出局的,count1数出局的
printf("请输入人数和间隔(+1): "); //间隔1,interval=2,间隔2,interval=3,依次类推。
scanf("%d%d",&qty,&interval);

for(i=0;i<qty;i++){    //给数组赋相同值或不同值,但不赋值为-1。
    arr[i]=1000;
    printf("arr[%d]=%d  ",i,arr[i]);
}
printf("\n");
arr[0]=-1;             //不论数组值相同或不同,圆环的任意起点可设置为索引是0,-1表示已出局。
count1++;              //count1计算出局数。
printf("第 %d 个出局的是索引为 %d 的。\n",count1,0);   

while(count1!=qty){
    for(i=0;i<qty;i++) {
        if(arr[i]==-1) { 
            continue;
        }else{ 
            count++;
        }
        if(count%(interval)==0) {
            arr[i]=-1;              
            count1++;
            printf("第 %d 个出局的是索引为 %d 的。\n",count1,i);
        }
    }   
}
printf("\n");

}

以上是关于约瑟夫环(Joseph)编程内容的主要内容,如果未能解决你的问题,请参考以下文章

Joseph_Circle(约瑟夫环)

hdu1443 Joseph---约瑟夫环

Joseph POJ - 1012 约瑟夫环递推

POJ 1012 Joseph(打表题)

北大ACM(POJ1012-Joseph)

Java-POJ1012-Joseph