早教吧 育儿知识 作业答案 考试题库 百科 知识分享

有N只猴子选大王,选举的办法是:排成一排,从头到尾报数,报到3的倍数(3、6、9、……)的退出去,直到全部报完,然后从尾到头开始逆向报数,同样报3的倍数的退出.第三遍又是从头到尾进行,

题目详情
有N只猴子选大王,选举的办法是:排成一排,从头到尾报数,报到3的倍数(3、6、9、……)的退出去,直到全部报完,然后从尾到头开始逆向报数,同样报3的倍数的退出.第三遍又是从头到尾进行,第四遍又从尾到头,直到最后余下两只,以排在后面(按报数的顺序)的那只为猴王.请编程序找出猴王的位置.(N从键盘输入)(用PASCAL)
▼优质解答
答案和解析
这个是C语言编写,
题目是输入两个正整数 n 和 m( (1data=x;
r=p->next;
q->next=r;
p->next=q;
}
void delect(Position p){// delect the element after p
PtrToNode tmp;
tmp=p->next;
p->next=tmp->next;
free(tmp);
}
void MakeList(List *L,int n){//make the list
int i;
Position p=L;
for(i=1;inext;
}
}
void main()
{
int i,j,n,m;
Position p,q,r;
List L;
double duration;
while(scanf("%d%d",&n,&m)!=EOF){//input the number to slect
if(n>MAX){
printf("The number is too large!\n");
continue;
}
init(&L);//initilze the list
MakeList(L,n);//make the list
start = clock();
q=p=L->next;// p and q are the first position of the list
for(i=0;inext; // r is the position of the element we select
if(r==NULL)r=q;
if(i!=n-1)printf("No%d:%d\n",i+1,r->data);//print the element
else printf("Last No is:%d\n",r->data);
if(p->next==NULL){
delect(L);
q=L->next;//delect the position of p->next
}
else delect(p);
p=p->next;
if(p==NULL)p=q;
}
stop = clock();
duration = ((double)(stop - start))/CLK_TCK;
printf("The time is %f\n",duration);
}
}
看了 有N只猴子选大王,选举的办法...的网友还看了以下:

一棵树的年龄头尾两数相同,中间两数相同,中间两数和是头尾两数和的5被,树有多打快  2020-03-31 …

有N只猴子选大王,选举的办法是:排成一排,从头到尾报数,报到3的倍数(3、6、9、……)的退出去,  2020-05-16 …

pascal N只猴子选大王 恩 程序尽量简单.初学者水平N只猴子选大王.选举办法如下:从头到尾1  2020-05-17 …

当一台主机传送数据到令一个不同网络的主机时,在IP包头中需要包含()地址来保证数据可以正确的到达。  2020-05-31 …

称一个两头(首位与末位)都是1的数为“两头蛇数”.一个四位的“两头蛇数”去掉两头,得到一个两位数,  2020-06-26 …

鸡兔同笼问题,数量关系式:假设全是鸡,则有()只数=(总足数-2×总头数)÷2()只数=总头数-鸡  2020-06-27 …

按图中谁规定的顺序数手指头,当数到2000时,正好数到哪个手指上数到1是大拇指,数到2是食指,数到  2020-07-03 …

206名同学排成一列,从头到尾排1-3报数,再从排尾到头1-4报数,那么两次报数中都报1得人共有多少  2020-11-17 …

有50名同学排成一排报数,报到偶数的留下,报到奇数的离开;,留下的同学位置不动重新报数,报到奇数的退  2020-11-17 …

马赫数可以描述飞机、火箭等高速运动物体的速度,它等于飞行速度与声速的比值,如马赫数为2,即为声速的两  2020-12-09 …