/*
 * main.c
 * 循环链表实现约瑟夫问题
 *  Created on: Nov 6, 2010
 *      Author: jenson
 */

#include

typedef struct node* link;

struct node {
    int item;
    link next;
};
int main(){

    int i;
    int N = 9,M=5;
    link t = (link)malloc(sizeof(*t));
    link x = t;
    t->item = 1;
    t->next = t;
    for(i = 2;i<=N;i++){
        x = (x->next = (link)malloc(sizeof(*x)));
        x->item = i;
        x->next = t;
    }
    while(x!=x->next){
        for(i = 1;i            x = x->next;
        }
        x->next = x->next->next;
        N--;
    }

    printf("%d\n",x->item);
    free(t);
    return 0;
}