[问题描述] 一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,
2014-06-21
展开全部
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int m,n,i,t;
cout<<"请输入猴子个数:"<<endl;
cin>>m;
cout<<"请输入每次个数:"<<endl;
cin>>n;
vector<int>a(m);
vector<int>b(m);
for(i=0;i<m;i++)
a[i]=i+1;
while(m!=1)
{
m--;
if(m+1>=n)
{
for(i=0;i<m;i++)
if(i+n<m+1)
b[i]=a[i+n];
else
b[i]=a[i+n-m-1];
for(i=0;i<m;i++)
a[i]=b[i];
}
else
{
t=n%(m+1);
for(i=0;i<m;i++)
if(i+t<m+1)
b[i]=a[i+t];
else
b[i]=a[i+t-m-1];
for(i=0;i<m;i++)
a[i]=b[i];
}
}
cout<<"猴子大王:"<<a[0]<<endl;
return 0;
}
#include <vector>
using namespace std;
int main()
{
int m,n,i,t;
cout<<"请输入猴子个数:"<<endl;
cin>>m;
cout<<"请输入每次个数:"<<endl;
cin>>n;
vector<int>a(m);
vector<int>b(m);
for(i=0;i<m;i++)
a[i]=i+1;
while(m!=1)
{
m--;
if(m+1>=n)
{
for(i=0;i<m;i++)
if(i+n<m+1)
b[i]=a[i+n];
else
b[i]=a[i+n-m-1];
for(i=0;i<m;i++)
a[i]=b[i];
}
else
{
t=n%(m+1);
for(i=0;i<m;i++)
if(i+t<m+1)
b[i]=a[i+t];
else
b[i]=a[i+t-m-1];
for(i=0;i<m;i++)
a[i]=b[i];
}
}
cout<<"猴子大王:"<<a[0]<<endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询