
猴子选大王 c#
publicintKing(intM,intN){//总人数M,数到第N个排除。intk=0;for(inti=2;i<=M;i++)k=(k+N)%i;return++...
publicintKing(intM,intN)
{
//总人数M,数到第N个排除。
intk=0;
for(inti=2;i<=M;i++)
k=(k+N)%i;
return++k;
}
for(inti=2;i<=M;i++)
k=(k+N)%i;
不明白啊 展开
{
//总人数M,数到第N个排除。
intk=0;
for(inti=2;i<=M;i++)
k=(k+N)%i;
return++k;
}
for(inti=2;i<=M;i++)
k=(k+N)%i;
不明白啊 展开
1个回答
展开全部
这个题解是错误的,它忽略了猴子是按圆圈站的条件
看着个,我刚写的
#include<stdio.h>
int main()
{
int m,n,s=0,i=1,p=0,a[100];
scanf("%d %d",&m,&n);
for(i=1;i<=m;i++)
a[i]=1;
for(i=1;i<=m+1;i++)
{
if(i>m) i=1;
if(a[i]==1) p=p+1;
if(p==n)
{
a[i]=0;
s=s+1;
p=0;
}
if(s==m-1) break;
}
for (i=1;i<=m;i++)
if(a[i]==1) printf("%d",i);
return 0;
}
要加分哦
看着个,我刚写的
#include<stdio.h>
int main()
{
int m,n,s=0,i=1,p=0,a[100];
scanf("%d %d",&m,&n);
for(i=1;i<=m;i++)
a[i]=1;
for(i=1;i<=m+1;i++)
{
if(i>m) i=1;
if(a[i]==1) p=p+1;
if(p==n)
{
a[i]=0;
s=s+1;
p=0;
}
if(s==m-1) break;
}
for (i=1;i<=m;i++)
if(a[i]==1) printf("%d",i);
return 0;
}
要加分哦
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询