1 条题解
-
0
C :
#include <stdio.h> main() { int n, m=3, i, s=0; scanf("%d", &n); for (i=2; i<=n; i++) s=(s+m)%i; printf ("%d\n", s+1); }
C++ :
#include <stdio.h> #include <stdlib.h> struct node { int num; struct node * next; }; int main() { struct node *p, *head, *current; int n, i; scanf("%d", &n); /* 建立循环链表 */ head = current = NULL; for (i = 0;i < n;i++) { p = (struct node *)malloc(sizeof(struct node)); p->num = i + 1; if (head == NULL) { head = current = p; } else { current->next = p; current = p; } } current->next = head; /* 模拟前n-1个人报号退出圈子的过程 */ current = head; for (i = 0;i < n - 1;i++) { current = current->next; p = current->next; current->next = p->next; current = current->next; free(p); } printf("%d\n", current->num); return 0; }
- 1
信息
- ID
- 1388
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者