You are given two positive integers n and k. Print the k-th positive integer that is not divisible by n. 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. Output For each test case print the k-th positive integer that is not divisible by n. Example input 给定两个数n、k,求第k个不能被n整除的数是多少。 首先,我们来想想,从1开始的第k个数本来是k,但因为中间的某一些数不能取,所以答案为k+某个数。我们要求的就是这个数。 分割线的数量不好求,我们可以先求出组数:
题目描述
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.
Each test case is two positive integers n (2≤n≤109) and k (1≤k≤109).
6
3 7
4 12
2 1000000000
7 97
1000000000 1000000000
2 1
output
10
15
1999999999
113
1000000001
1题目大意
题目分析
以第二组数据为例:
4 12
1,2,3|5,6,7|9,10,11|13,14,15
第12个数是15。前12个数有3个|,所以是12+3=15。所以这个数即为分割线的数量。
因为每组有(n-1)个数,所以组数为k/(n-1)上取整,而分割线的数量即为组数-1,因此答案即为(k+n-1)/(n-1)-1。这个数可以简化为(k-1)/(n-1)
。代码如下
#include <iostream> #include <cstdio> #include <cmath> #include <string> #include <cstring> #include <map> #include <queue> #include <vector> #include <set> #include <algorithm> #include <iomanip> #define LL long long using namespace std; int const N=1e5+5; int main() { int t; cin>>t; while(t--) { int n,k; cin>>n>>k; cout<<k+(k-1)/(n-1)<<endl; } return 0; }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算