C高手帮忙看看,我这个Josphus的程序最后输出的答案不对,帮忙改一下。
#include "iostream.h"#include "stdlib.h"
int Josphus(int m,int n)
{
int i,j=0,k=0,s[100];
for(i=0;i<n;i++)
s[i]=rand()%100+1;
for(i=0;i<n;i++)
{
if (s[i]==0)
if (i==n-1)
i=0;
else i++;
else
k++;
if (k==m)
{
s[i]=0;
j++;
k=0;
}
if(j==n-1)
break;
}
return i+1;
}
void main()
{
int m;
int n;
cout<<"输入m:";
cin>>m;
cout<<"输入n:";
cin>>n;
cout<<"最后剩下的是:"<<Josphus(m,n);
}