swust oj 956

约瑟夫问题的实现

2000(ms)

65535(kb)

3266 / 10775

n个人围成一个圈,每个人分别标注为1、2、...、n,要求从1号从1开始报数

,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后

一个人时,该人即为胜利者。例如当n=10,k=4时,依次出列的人分别为4、8

、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。给定n个人,请你

编程计算出最后胜利者标号数。(要求用单循环链表完成。)

输入

第一行为人数n;
第二行为报数k。

输出

输出最后胜利者的标号数。

样例输入

10 
4


样例输出

5

代码

 

上一篇:swust oj 972


下一篇:Codeforces Round #704 (Div. 2) D. Genius‘s Gambit