Problem1326--约瑟夫问题

1326: 约瑟夫问题

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 173  Solved: 106
[Submit] [Status] [Web Board] [Creator:]

Description

问题:n个人围成一个圈,每个人分别标注为1、2、...、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。
例如当n=10,k=4时,依次出列的人分别为4、8、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。
给定n个人,请你编程计算出最后胜利者标号数。(要求用单循环链表完成。)
链表节点结构如下:
typedef struct List
{
    int  data;
    struct List *next;
}linkList;


Input

10
4

Output

5

Sample Input

10
4

Sample Output

5

Source/Category

 

[Submit] [Status]