CF 1352C

您所在的位置:网站首页 代码1352c CF 1352C

CF 1352C

2024-06-11 21:26| 来源: 网络整理| 查看: 265

You are given two positive integers n and k. Print the k-th positive integer that is not divisible by n.

For example, if n=3, and k=7, then all numbers that are not divisible by 3 are: 1,2,4,5,7,8,10,11,13…. The 7-th number among them is 10.

Input The first line contains an integer t (1≤t≤1000) — the number of test cases in the input. Next, t test cases are given, one per line.

Each test case is two positive integers n (2≤n≤109) and k (1≤k≤109).

Output For each test case print the k-th positive integer that is not divisible by n.

Example inputCopy

6 3 7 4 12 2 1000000000 7 97 1000000000 1000000000 2 1

outputCopy

10 15 1999999999 113 1000000001 1

思路

首先,我们来想想,从1开始的第 k k k 个数本来是 k k k ,但因为中间的某一些数不能取,所以答案为 k + 某 个 数 k+某个数 k+某个数。我们要求的就是这个数。

以第一组数据为例: 4 12 1,2,3|5,6,7|9,10,11|13,14,15 第12个数是15。前12个数有3个|,所以是12+3=15。所以这个数即为分割线的数量。

分割线的数量不好求,我们可以先求出组数:

因为每组有 ( n − 1 ) (n-1) (n−1) 个数,所以组数为 k n − 1 \frac{k}{n-1} n−1k​上取整,而分割线的数量即为 ( 组 数 − 1 ) (组数-1) (组数−1),因此答案即为 k + n − 1 − 1 n − 1 − 1 \frac{k + n-1 -1}{n-1}-1 n−1k+n−1−1​−1 ( k + n − 1 − 1 k + n-1 -1 k+n−1−1为上取整)。这个数可以简化为 k − 1 n − 1 \frac{k -1}{n-1} n−1k−1​。

#include using namespace std; int main() { int t; cin >> t; while (t--) { int n, k; cin >> n >> k; cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3