还是自己写的靠得住。
/* 约瑟夫出圈问题 给定m、n两个数,从1到n循环的数,每m的倍数时输出当前的数,直到所有的都输出为止。 */ #include <iostream> using namespace std; int main(int argc,char* argv[]) { int nM,nN; cout<<"input m"<<endl; cin>>nM; cout<<"input n"<<endl; cin>>nN; cout<<endl; int *pN=new int[nN+1]; for (int i=0;i<=nN;i++) { pN[i]=i; } int nCount=nN; for (int i=1,j=0;nCount!=0;) { if (pN[i]!=0) { j++; if (j%nM==0) { j=0; cout<<pN[i]<<endl; pN[i]=0; nCount--; } } i++; if (i%(nN+1)==0) { i=1; } } cout<<endl; return 0; }