早教吧作业答案频道 -->其他-->
有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 和 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只猴子选大王,选举的办法...的网友还看了以下:
核武器真的可以炸毁地球吗科学家推测太阳系中的一颗行星为核武器爆炸炸成了碎片,那么地球上有这么多核弹 2020-05-17 …
这桃花,开得满山遍野,开得热火朝天,开得惊天动地,把春天打扮得花枝招展.照列写一组句子,句子使用. 2020-05-20 …
没多时,法场中间,人分开处,一个报,报道一声:“午时三刻!”监斩官便道:“斩讫报来!”两势下刀棒刽 2020-06-17 …
.下列句子中“见”不表被动的一句是()A.欲与秦,秦城恐不可得,徒见欺B.苏秦富贵,以百金偿之,遍 2020-06-20 …
下列句子中“见”不表被动的一句是()A.欲与秦,秦城恐不可得,徒见欺B.苏秦富贵,以百金偿之,遍报 2020-06-27 …
自第一所孔子学院在韩国首尔正式揭牌后,孔子学院可谓遍地开花。目前,全球已经启动建设了331所孔子学 2020-07-19 …
1.甲乙两个小朋友做报数的游戏,每人可以报1~3个连续的数,从1开始报,谁先报到30谁胜,如果两个 2020-07-24 …
从2004年开始,中国在海外设立以教授汉语和传播中国文化为宗旨的非营利性教育机构“孔子学院”。短短1 2020-11-04 …
下列四句话中分类不恰当的句子是1春天一到,桃花.梨花.迎春花.荷花都陆续开放了.2《南京晨报》《扬子 2020-12-10 …
深秋时节,正值桂花开放的季节,小雪不禁想起“八月桂花遍地开……”。漫步花丛中,她闻到清新的桂花花香, 2020-12-31 …