C++约瑟夫环问题,题目要求输出最后一个人的编号,并且要允许多组数据的输入和输出

例如,输入是6 212 48 30 0输出应为517求帮忙,谢谢!
2024-11-29 21:03:40
推荐回答(1个)
回答1:

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdlib.h"
#include
using namespace std;
int main(void){
int i,j,k,M,S,x,*p;
while(1){
cout << "Please input M(int M>0) & S(int S>0)...\n";
if(cin >> M >> S,M==0 && S==0)
break;
if(M>0 && S>0 ){
if(p=new int[M],p){
for(i=0;i for(x=M-1,k=j=i=0;k if(p[i]!=0 && ++j==S){
p[i]=j=0;
k++;
}
cout << "The last one is the No." << (i ? i : M) << endl;
delete [M]p;
}
else{
cout << "Application memory failure...";
exit(0);
}
}
else cout << "Error,redo: ";
}
cout << endl;
return 0;
}