- #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 t = malloc( sizeof *t ), x = t;
- t->item = 1;
- t->next = t;
- for ( i = 2; i <= N; i++ )
- {
- x = ( x->next = malloc( sizeof *t ) );
- x->item = i;
- x->next = t;
- }
- while ( x != x->next )
- {
- for ( i = 1; i < M; i++ )
- x = x->next;
- x->next = x->next->next;
- N--;
- }
- printf( "%d/n", x->item );
- return 0;
- }
Circular list example -- Josephus problem
最新推荐文章于 2024-09-24 11:19:00 发布