约瑟夫环.cpp

来自「一个关于约瑟夫环的程序」· C++ 代码 · 共 52 行

CPP
52
字号
#include<stdlib.h>
#include<iostream.h>

typedef struct LNode
{
	int num,pwd;
	struct LNode *next;
}LNode, *LinkList;

void main()
{
	int j,i,m,n,pass;
    cout << "请输入报数的上限: ";
    cin >> m;
	cout << "请输入人数: ";
	cin >> n;
    LinkList head,p,pt;
	cout << "请输入" << n << "个人的密码:";
    head = (LinkList)malloc(sizeof(LNode));
    p = head;
	cin >> pass;
	p->num = 1;
	p->pwd = pass;
    for(i=2;i<=n;i++){
		pt = (LinkList)malloc(sizeof(LNode));
		p->next = pt;
		p = pt;
		cin >> pass;
		p->num = i;
		p->pwd = pass;
	}
    pt->next = head;

	cout << "出列顺序为: ";
    for(i=1;i<=n;i++)
	{
		for(j=1;j<m;j++)
		{
				p = p->next;
		}
		pt = p->next;
		m = pt->pwd;
		if (i == n)
			cout << pt->num << "." << endl;
		else
			cout << pt->num << ", ";
		p->next = pt->next;
		free(pt);
		pt = p;
	}
}

⌨️ 快捷键说明

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