约瑟夫环问题

#include <stdio.h>
#define NUM 200
#define N 3
int main()
{
  int a[NUM+1] = {0};
  int i = 1;
  int num = 0;
  int count = 0;
  int quit = 1;
  while(quit)
  {
    int flag = 0;
    for (i=1; i<=NUM; i++)
    { 
      if (a[i] == 0)
      {
        num = i;
        flag++;
        count++;
      }
      if (count%N == 0)
      {
        a[i] = 1;
      } 
      if (i==NUM && flag==1)
      {
        quit = 0;
      }
    }
  }
  printf("the last one is num %d\n",num);
}

posted @ 2013-07-17 16:35  zhaopu  阅读(132)  评论(0)    收藏  举报