1. 程式人生 > >【轉】N個人圍成一圈報數逢三出圈

【轉】N個人圍成一圈報數逢三出圈

//Author:Guo R.H
//    USTC
//N個人圍成一圈報數,逢三出圈
#include<stdio.h>
#include<string.h>
#define N 10
void main()
{
 int a[N],i,t=0,count=0;
 for(i=0;i<N;i++)
  a[i] = i+1;        //編號
 for(i=0;i<N;i++)
 {
  if(a[i]!=0)
   t++;             //報數
  if(t == 3)        //逢三置0表示出圈   
  {
   a[i] = 0;
   count++;         //出圈人數記錄
   t = 0;           //重新報數
  }
  if(i == N-1)       //到末尾重新開始
   i = -1;
  if(count == N-1)   //若只有一個未出圈,退出
   break;
 }
 for(i=0;i<N;i++)
  printf("%d ",a[i]);
}