猴子选大王的编程,数据结构方法

发布网友 发布时间:2022-04-22 03:59

我来回答

2个回答

热心网友 时间:2023-06-26 12:33

可使用数组回溯法:
回溯法是:将猴子总个数循环,第一次循环都是将当前需要出圈的猴子排列到数组的末尾。这样全部猴子循环一遍后,数组头的猴子极为猴王。注意,循环一起找出第一个之后将之循环它之前的剩余数组。即程序中的for(i=MAX-1;i>=0;i--)

[cpp] view plaincopy
#include<stdio.h>
#include<dos.h>
#define MAX 30/*定义猴子总数*/
int i,j,k,temp;
int Monkey[MAX],S;

void init()
{
for(i=0;i<MAX;i++)
Monkey[i]=i+1;
for(i=0;i<MAX;i++)
printf("%d ",Monkey[i]);/*让猴子站成一圈*/
printf("\n");
}
void output()
{
printf("猴子淘汰出圈的顺序是:\n\r");
for(i=MAX-1;i>=0;i--)
printf("第 %3d 只猴子出圈!\n\r",Monkey[i]);
printf("猴王是:第 %d 只猴子\n\r",Monkey[0]);
}
void main()
{

init();

printf("请输入出队的序数:");
scanf("%d",&S);/*读取猴子出队序数*/

for(i=MAX-1;i>=0;i--)
{
for(k=1;k<=S;k++)
{
temp=Monkey[0];
for(j=0;j<i;j++)
{
Monkey[j]=Monkey[j+1];
}
Monkey[i]=temp;
}/*将每一次要出队的猴子排到队尾*/
}
output();
}

热心网友 时间:2023-06-26 12:33

猴子选大王数据结构算法?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com