📄 main.cpp
字号:
#include<iostream>
#include<stdio.h>
using namespace std;
#define OK 1
#define OVERFLOW 0
typedef int ElemType;
typedef struct CirNode {
ElemType mima;
int Number;
CirNode *next;
}CirNode, *CirLinkList;
int CreateList_L(CirLinkList &L, int n) {
CirLinkList p,q;
L = (CirLinkList)malloc(sizeof(CirNode));
if(!L)
return OVERFLOW;
q = L;
for(int i = 1; i <= n; i++) {
p = (CirLinkList)malloc(sizeof(CirNode));
if(!p)
return OVERFLOW;
scanf("%d",&p->mima);
p->Number = i;
L->next = p;
L = L->next;
}
L->next = q->next;
L = L->next;
free(q);
return OK;
}
int GetNumElem_L(CirLinkList &L, int n, ElemType &e) {
CirLinkList q;
int i(1);
while(i) {
if(n == 1) {
q = L;
cout << L->Number << " ";
e = L->mima;
L = L->next;
free(q);
break;
}
if(i == n - 1) {
q = L->next;
L->next = q->next;
L = L->next;
e = q->mima;
cout << q->Number << " ";
free(q);
break;
}
i++;
L = L->next;
}
return OK;
}
int main()
{
int PeopleNum;
int m;
ElemType e;
CirLinkList L;
cout << "输入人数为0时结束程序" << endl;
cout << "输入首个密码m:";
cin >> m;
cout << "输入人数:";
cin >> PeopleNum;
cout << "输入每个人的密码:";
CreateList_L(L, PeopleNum);
while(PeopleNum) {
m = m % PeopleNum;
while(PeopleNum != 1) {
if(GetNumElem_L(L, m, e)) {
PeopleNum--;
m = e % PeopleNum;
if(PeopleNum == 1) {
cout << L->Number << endl;
free(L);
}
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -