约瑟夫循环问题
程序员文章站
2024-03-21 19:46:46
...
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct LNode
{
int data;
struct LNode *next;
}LNode, *LinkList;
int josephu(int m, int n)
{
LinkList p, curr;
p = (LinkList)malloc(sizeof(LNode));
p->data = 1;
p->next = p;
curr = p;
for(int i = 1;i < n; i++)
{
LinkList tmp = (LinkList)malloc(sizeof(LNode));
tmp->data = i + 1;
tmp->next = curr->next;
curr->next = tmp;
curr = tmp;
}
while(n--)
{
LinkList tmp;
for (int s=m-1;s--;tmp=p,p=p->next);
tmp->next=p->next;
cout<<p->data<<"->";
free(p);
p=tmp->next;
}
return 0;
}
int main()
{
josephu(4,17);
return 0;
}
参考链接:
下一篇: 同一个PHP页面连接两个数据库