1 条题解
-
0
C :
#include<stdio.h> int main() { int s[28]; int k,m,temp; int i,k2,t; while(scanf("%d",&k),k) { for(m=k+1;;m++) { t=m; k2=2*k; for(i=0;i<k;i++){//k次查找 temp=t%k2; if(temp==0) temp=k2; if(temp-k<=0) break; else t=m-(k2-temp); k2--; } if(i>=k) { printf("%d\n",m); break;} } } return 0; }
C++ :
#include<iostream> using namespace std; int main(void) { int Joseph[14]={0}; int k; while(cin>>k) { if(!k) break; if(Joseph[k]) { cout<<Joseph[k]<<endl; continue; } int n=2*k; int ans[30]={0}; int m=1; for(int i=1;i<=k;i++) { ans[i]=(ans[i-1]+m-1)%(n-i+1); if(ans[i]<k) { i=0; m++; } } Joseph[k]=m; cout<<m<<endl; } return 0; }
- 1
信息
- ID
- 240
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者