题目链接
塔子哥的花园-阿里淘天2024笔试(codefun2000)
题目内容
塔子哥有一座神奇的花园,花园中种植了 n+1 株神秘的花朵,每株花朵都有一个美丽值。花朵的美丽值以数组 a 表示,其中 a i a_i ai 表示第 i 株花朵的美丽值。花园里除了最后一株花 a n + 1 a_{n+1} an+1 其美丽值为 x,其它每株花的美丽值都由下一株花的美丽值决定,具体为: a i = a i + 1 m o d i a_i =a_{i+1} mod i ai=ai+1modi (1≤i≤n)
塔子哥希望知道第 k 株花的美丽值是多少。请你帮助他计算。
输入描述
第一行输入一个整数 T( 1 ≤ T ≤ 1 0 5 1≤T≤10^5 1≤T≤105),表示询问的次数。
接下来 T 行,每行输入三个整数 n ( 1 ≤ n ≤ 1 0 9 ) , x ( 0 ≤ x ≤ 1 0 9 ) , k ( 1 ≤ k ≤ n + 1 ) n(1≤n≤10^9 ),x(0≤x≤10^9 ),k(1≤k≤n+1) n(1≤n≤109),x(0≤x≤109),k(1≤k≤n+1),表示一次询问。
输出描述
对于每次询问,输出一个整数表示第 k 株花的美丽值。
样例1
输入
2
1 1 1
5 1 4
输出
0
1
题解1
#include<bits/stdc++.h>
using namespace std;
int t, n, x, k, ans;
int main(){
scanf("%d", &t);
while(t--){
scanf("%d%d%d", &n, &x, &k);
ans = x; // 表示第n+1项的值为x
while(n >= k){
ans = ans % n;
n--;
}
printf("%d\n", ans);
}
return 0;
}