⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 link1.txt

📁 一个用C写的猴子选大王问题
💻 TXT
字号:
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
要求:
输入数据:输入m,n m,n 为整数,n<m
输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能 
#include<stdio.h>
#include<stdlib.h>

struct Node {
	int data;
	struct Node *next;
};

int main()
{
	struct Node *head, *s, *q, *t;
	int n, m, count=0, i;
	printf("input the number m:");
	scanf("%d",&m);
	printf("\ninput the number n:");
	scanf("%d",&n);

	for(i=0; i<m; i++) {
		s=(struct Node *)malloc(sizeof(struct Node));
		s->data=i+1;
		s->next=NULL;
		if(i==0) {
			head=s;
			q=head;
		}
		else {
			q->next=s;
			q=q->next;
		}
	}
	q->next=head;

	printf("before:");
	q=head;
	while(q->next!=head) {
		printf("%d ",q->data);
		q=q->next;
	}
	printf("%d \n",q->data);

	q=head;
	printf("\n");
	do {
		count++;
		if(count==n-1) {
			t=q->next;
			q->next=t->next;
			count=0;
			printf("%d ", t->data);
			free(t);
		}
		q=q->next;
	}while(q->next!=q);
	printf("\nthe king is: %d\n",q->data);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -