“树人杯”暨第三届辽宁科技大学校园程序设计竞赛正赛F 最后一个是谁?(紫)...

F 最后一个是谁?(紫)

Time Limit:1000MS  Memory Limit:65536K
Total Submit:15 Accepted:7

Description

在树人学习计算机并不乏味,老师经常在课余时间跟同学玩一些有趣的游戏。这就是一个有趣的游戏:老师让N个同学围成一个圈,分别编号为1,2,3,4。。。N 并从中一个开始报数,报到K的同学,出列,然后让剩下的N-1个同学开始继续报数,从报到K的下一个同学开始报数,报到K的人出列,在从剩下的N-2个同学开始报数,直到剩下最后一个人,请问,最后一个人的编号为多少
如:有8个同学围成一圈开始报数,报到5的人出列,从编号为3的人先出列,从编号为4的人报1。。。。直到编号为8 的人报到 5的时候,编号为8的同学出列,再从8号同学的下一个同学即编号为1的同学开始从1报数,则编号为6的人报到5,那么编号为6的同学出列,然后从编号为7的同学开始从1报数。。。。一直这样,直到最后一个同学为止。
你的任务就是编写一个程序,给你N个同学,报到K的人出列,从编号为M的人开始报数,求出当剩下最后一个同学的编号?

Input

输入:N K M (2 ≤ n ≤ 10000, 1 ≤ k ≤ 10000, 1 ≤ m ≤ n)(当n , k , m 都为0的时候,程序结束)

Output

输出:最后一个同学的编号

Sample Input

8 5 3
100 9999 98
10000 10000 10000

 

Sample Output

1
93
2019

 

 

#include
int main()
{
int n,k,m,i;
while( cin >> n >> k >>m && (m != 0 && k != 0 && m != 0) )
{
int  temp = 0;
for ( i = 2; i < n; i++ )
{
temp = (temp + k ) % i;
}
cout << (temp + m ) % n+1 < 
  

转载于:https://www.cnblogs.com/anderson0/archive/2009/04/28/1445365.html

你可能感兴趣的:(“树人杯”暨第三届辽宁科技大学校园程序设计竞赛正赛F 最后一个是谁?(紫)...)