
C语言程序
猴子选大王任务:一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈...
猴子选大王
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:
输入数据:输入m,n m,n 为整数,n<m
输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能 展开
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:
输入数据:输入m,n m,n 为整数,n<m
输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能 展开
2个回答
展开全部
#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;
}
这是我刚写的,给我加分哦
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;
}
这是我刚写的,给我加分哦
展开全部
此题是约瑟夫环的变种。详情:
http://baike.baidu.com/view/717633.htm
http://baike.baidu.com/view/717633.htm
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询