约瑟夫问题
July 8th, 2014
linked list
C
struct node {
item item;
struct node* next;
}
struct node* head = malloc(sizeof(*head));
head->item = 1;
head->next = head;C full-edition
// josephus_problem.c
#include <stdio.h>
#include <stdlib.h>
typedef struct node* link;
struct node {
int item;
link next;
};
int main(int argc, char *argv[]) {
int i, N = atoi(argv[1]), M = atoi(argv[2]);
link head = malloc(sizeof(struct node)), x;
head->item = 1;
head->next = head;
for (i = 2, x = head; i <= N; i++) {
x = (x->next = malloc(sizeof *x));
x->item = i;
}
x->next = head;
while(x != x->next) {
for (i = 1; i < M; i++) x = x->next;
printf("%d ", x->next->item);
x->next = x->next->next;
}
printf("\nLeft: %d\n", x->item);
}Javascript
construct function
Python
Java
Last updated