ThrowingCards问题

来源:互联网 发布:ubuntu恢复删除文件夹 编辑:程序博客网 时间:2024/06/04 19:00

//给出一个有序的数列N:1到n,每次把第一个去掉,然后把去掉第一个后N的第一个数移到N的末尾,统计去掉的数,直到剩下两个数时停止执行
#include "stdio.h"
int main()
{
 int a;
 int j1;
 int m[100]={0},n[100]={0};

 while(scanf("%d",&a)!=-1)
 {
  if(a==0)
   return 0;
  for(int i=0;i<a;i++)
  {
     m[i]=i+1;
  }
     for(int j=0;j<100;j++)
  {
     n[j]=m[0];
     for( j1=0;j1<a;j1++)
     {
         m[j1]=m[j1+1];
      if(m[j1]==0)
     break;

     }
     m[j1]=m[0];
     for(int j2=0;j2<a;j2++)
     {
    m[j2]=m[j2+1];
    if(m[j2]==0)
    break;

     }
  }
     for(int i1=0;i1<a;i1++)
  {
    printf("%d ",n[i1]);
  }
  printf("/n");
  }
  return 0;
}