c++约瑟夫环问题

//约瑟问题
//问题背景,一共有30个人,围成环圈,开始报数,数到9的人被丢弃,一直到剩下15个人 为止
#include<iostream>
using namespace std;
int main()
{
    int all[30];
    int yijiao[15];
    int jidu[15];
    int i,j,k,yijiao_count,yijiao_index,jidu_count;
    for(i=0;i<30;i++)
        all[i]=i+1;
    i=0;
    k=0;
    yijiao_count=0;
    yijiao_index=0;
    jidu_count=0;
    while(yijiao_count<15)
    {
        if(all[i]!=0)
            k++;
        if(k==9)
        {
            yijiao[yijiao_index]=all[i];
            yijiao_index++;
            all[i]=0;
            k=0;
            yijiao_count++;
         } 
         i++;
         if(i==30)
             i=0;
     } 
     for(i=0;i<30;i++)
     {
         if(all[i]!=0)
         {
             jidu[jidu_count]=all[i];
             jidu_count++;
         }
     }
     cout<<"异教徒的序号为:"<<endl;
     for(i=0;i<15;i++)
     {
         cout<<yijiao[i]<<" ";
      } 
     cout<<endl<<"基督教徒的序号为:"<<endl;
     for(i=0;i<15;i++)
     {
         cout<<jidu[i]<<" ";
      } 
      cout<<endl;
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/chuxinbubian/p/10458434.html