cpp36-约瑟夫环问题.txt

来自「Visual C++的课件和一些习题及答案」· 文本 代码 · 共 34 行

TXT
34
字号
#include <iostream.h>
int main(void)
{
  int a[21]={0};
  int i, count, s;
  for (i = 0;i < 21;i++)
    {
        a[i] = i + 1;    /* 填空数组,编号是下标加一,注意C语言中的数组下标从0开始 */
    }  
    i=0;
    s=21;  //用来记录退出圈外的人的数目 
    count=0;  //计数器 
    while(s > 1)
    {
       for(i=0; i<21; i++)
       if(a[i] != 0)
	   {
         count++;    //报一次数 
         if(count == 5)  //每报到一次5,该人退出 
		 {
          cout<<"No."<<(22-s)<<":The people who go away:"
			  <<a[i]<<endl;//给出每次应该走的人
		  a[i] = 0; 
          count = 0;  //计数器归零
          s--;
		 }
	   }
	}
	cout<<"The last people who remain is:";
    for(i=0; i<21; i++)
    if(a[i] != 0)  cout<<a[i]<<endl;
}
  
  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?