zoj 1088

来源:互联网 发布:python如何编写脚本 编辑:程序博客网 时间:2024/05/22 12:31

//模拟问题

code:

#include<iostream>
using namespace std;
int ans[200];
int circle(int n,int m)
{
    bool c[200];
    fill(c,c+n+1,false);
    int i,j,cnt=0,u=0;
    for(i=1;i<=n;i++)
    {
        if(c[i]==false)
        {
            cnt++;
            if(cnt==m)
            {
                c[i]=true;
                u++;
                cnt=0;
            }
        }
        if(u==n-1) break;
        if(i==n)
        {
            for(j=1;j<=n;j++)
            {
                if(c[j]==false)
                {
                    i=j-1;
                    break;
                }
            }
        }
    }
    for(i=1;i<=n;i++)
    {
        if(c[i]==false) return i;
    }
    return 0;
}
void calculate()
{
   int i,j;
   for(i=3;i<150;i++)
   {
   for(j=2;;j++)
   {
     if(circle(i-1,j)==1)
     {
     ans[i]=j;
      break;
      }
   }
   }
}
int main()
{
    calculate();
    int n;
    while(scanf("%d",&n)!=EOF && n!=0)
    {
        printf("%d/n",ans[n]);
    }
    return 0;
}

原创粉丝点击