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

📄 cpp1.cpp

📁 约瑟夫环问题:设有编号为1
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>

typedef struct Node
{
	 int code;
	 int turn;
	 struct Node *next;
}NOTE;
void main()
{
	int i,n,m,count=0;
	NOTE *head,*p,*q,*r;
	head=(NOTE *)malloc(sizeof(NOTE));
	head->next=NULL;
	q=head;
	printf("\nplease input m and n:");
	scanf("%d,%d",&m,&n);
	if(n==0)
		printf("\nerror\n");
	else
	for(i=1;i<=n;i++)
	{
		p=(NOTE *)malloc(sizeof(NOTE));
		q->next=p;
		p->next=NULL;
		p->turn=i;
		p->code=rand()%10+1;
		q=p;
	}
	p->next=head;
	p=head->next;
	printf("随机产生的密码为:\n");
    for(i=1;i<=n;i++)
	{
		printf("%d号的密码是%d\n",i,p->code);
		p=p->next;
	}
	p=head;
	printf("\n出列的顺序为:\n");
    for(i=1;i<=n;i++)
	{
		while(count!=m)
		{
			q=p;
			p=q->next;
			if(p!=head)
				count++;
		}
		printf("%d\n",p->turn);
		r=p;
		m=p->code;
		p=p->next;
		if(p==head)
			count=0;
		else
			count=1;
		q->next=r->next;
		free(r);
	}
}

⌨️ 快捷键说明

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