3987 - 测试转圈

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB
池塘边有一位长者,他绕着池塘不断的转圈,看似正思考着一个人生哲理。无聊的小张这天正好路过池塘,发现这位长者每走一步,就会推一次他的黑框眼镜。这位长者的举动引起了她极大的好奇。于是促使她停下来观察,突然这位长者停了下来,化身为青蛙王子跳入水中。由于池塘很大,小张也无法分辨这位长者最终在哪化身青蛙并跳入水中,但执着的小张一定要找到她的青蛙王子,可她现在仅有的线索就是这位长者推眼镜的次数|k|,每推n次眼镜就会从她身边经过一次,以及小张开始第一次计数时,长者所在位置p。请问你能帮帮她推测出这位长者最终在哪落水吗?

题目输入

接下来t行,每行输入3个整数,分别代表n,p,k(1 <= n <= 100, 1 <= p <= n, -100 <= k <= 100),其中k为正数表示长者是按位置变好顺序转圈,k为负数时表明长者是按位置编号逆序转圈

题目输出

每组数据输出一个数字,表示最终长者化身为青蛙落水的位置

输入/输出样例

输入格式

2
6 2 -5
5 1 3

输出格式

3
4

C++解答

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>

using namespace std;

int main()
{
    int k;
    scanf ("%d", &k) ;
    while (k--)
    {
        int n, a, b ;
        scanf("%d%d%d",&n,&a,&b);
        int t=(a+b)%n;
        if(t==0)
        {
            printf("%d\n",n);
            continue ;
        }
        if(t>=0)
            printf("%d\n",t);
        else
            printf("%d\n",n+t);
    }
    return 0;
}