第一道题是老师改的约瑟夫问题
想了好久也没想明白
后来参考了https://www.xuebuyuan.com/1420234.html
题目如下
#include <iostream>
using namespace std;
void Solution(int *a, int length, int m);
int main() {
int a[100],m,n,i;
cin>>n>>m;
for(i=0;i<n;i++)
a[i]=i;
Solution(a,n,m);
return 0;
}
void Solution(int *a,int length,int m){
int i=0,k=0;
int index=length;
int mIndex=m;
while(index>1){
mIndex=m;
while(mIndex>0)
{
if(a[i]!=-1)
{
mIndex--;
if(mIndex==0)
a[i]=-1;
}
k=i;
i=(i+1)%length;
}
cout<<k<<" ";
index--;
}
for(i=0;i<length;i++)
if(a[i]!=-1)
cout<<a[i];
}
这是修改过后的代码,还是我太菜了。