4_3 救济金发放(UVa133)<子过程/函数设计>

为了缩短领救济品的队伍,NNGLRP决定了以下策略:每天所有来申请救济品的人会被放在一个大圆圈,面朝里面。标明一个人为编号1号,其他的就从那个人开始逆时针开始编号直到N。一个官员一开始逆时针数,数k个申请者,然后另一个官员第N个始顺时针方向数m个申请者,这两个人就被送去再教育。如果两个官员数的是同一个人,那个人则被送去从政,然后2个官员再在剩下的人里面继续选直到没人剩下来,注意两个被选中的人是同时走掉的,所以就有可能两个官员选中一个人。

【输入】

输入含有多组测试数据,每组测试数据一列含有三个数N,k和m(k,m > 0,0<N<20)。
当输入为0 0 0代表输入结束。

【输出】

对每组测试数据输出一列。输出被选中的申请者的编号顺序(一对一对的)。每个数的宽度为3。每一对前面的那个编号为逆时针数的官员选出的,后面的那个编号为顺时针数的官员选出的(但是如果这2个官员选出同一个人,那就只会有一个编号)。每一对之间以逗号分开。格式请参考样例输出。

【样例输入】

10 4 3
13 17 42
7 8 47
0 0 0

【样例输出】

4 8, 9 5, 3 1, 2 6, 10, 7
4 11, 10 1, 8 6, 13 7, 3, 5 12, 9 2
1 3, 5 7, 2 4, 6

 
原文地址:https://www.cnblogs.com/jjzzx/p/5341650.html