#include <stdio.h>
#include <stdlib.h>
typedef struct Node
{
int data;
struct Node *next;
}Node, *PNode;
int main()
{
int i, N, M;
printf("请输入人数N: ");
scanf("%d",&N);
printf("请输入报数M: ");
scanf("%d",&M);
PNode head, p, t;
head = (PNode)malloc(sizeof(Node));
head->next= NULL;
p = head;
for(i = 1; i <= N; i++)
{
t = (PNode)malloc(sizeof(Node));
t->data = i;
t->next = head->next;
p->next = t;
p = p->next;
}
while(p != p->next)
{
for(i = 1; i < M; i++)
p = p->next;
t = p->next;
p->next = p->next->next;
free(t);
}
printf("最后剩下的是: ");
printf("%d\n", p->data);
free(p);
free(head);
}
约瑟夫问题
最新推荐文章于 2025-06-14 11:29:48 发布