题目描述
输入
输出
样例输入
样例输出
//分析:从一开始枚举,做一下记忆化防超时。。 #include <iostream> #include <string> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <vector> #include <queue> #include <deque> #include <map> #define range(i,a,b) for(int i=a;i<=b;++i) #define LL long long #define rerange(i,a,b) for(int i=a;i>=b;--i) #define fill(arr,tmp) memset(arr,tmp,sizeof(arr)) using namespace std; int p[55],Jos[15],k; void init(){ } void solve(){ while(cin>>k,k){ if(Jos[k]){ cout<<Jos[k]<<endl; continue; } int n=(k<<1),m=1; p[0]=0; range(i,1,k){ p[i]=(p[i-1]+m-1)%(n-i+1); if(p[i]<k){ i=0; ++m; } } Jos[k]=m; cout<<m<<endl; } } int main() { init(); solve(); return 0; }