解题思路:
注意事项:
参考代码:
#include<iostream> using namespace std; long Josephus(long,long,long); int main() { int m,n; while(cin>>n>>m) cout<<Josephus(m,n,1)<<endl; return 0; } long Josephus(long m,long n,long k) { long x; for(long i=1;i<=n;i++) { if((k+m)<i) { x=(k-1)/(i-m); if(i+x<n) { k=k+m*x; i=i+x; } else { k=k+m*n-i; i=n; } } k=(k+m-1)%i+1; } return k; }
0.0分
0 人评分