酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C语言单循环链表实现:求解n=20、m=5时约瑟夫环问题的出局顺序

```c #include <stdio.h> #include <stdlib.h> typedef struct Node { int num; struct Node *next; } Node; Node *createCircle(int n) { Node *head = (Node *)malloc(sizeof(Node)); Node *p = head; for (int i = 1; i <= n; i++) { Node *node = (Node *)malloc(sizeof(Node)); node->num = i; p->next = node; p = node; } p->next = head->next; free(head); return p->next; } void josephus(int n, int m) { Node *head = createCircle(n); Node *p = head; while (p->next != p) { for (int i = 1; i < m - 1; i++) { p = p->next; } Node *q = p->next; printf("%d ", q->num); p->next = q->next; free(q); p = p->next; } printf("%d\n", p->num); free(p); } int main() { int n = 20; int m = 5; josephus(n, m); return 0; } ``` ######[AI写代码神器 | 590点数解答 | 2024-07-21 11:12:05]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]