C. K-th Not Divisible by n(数学题)

题意:输入n,k两个数,输出第k个不能被n整除的数。

题解:

 

假如我们输入的3,5,这表示我们需要找到第5个不被3整除的数,我们把数列出来,找到能被3整除的数,发现数列被分成了一段一段的且长度相等,

段数等于(5-1)/(3-1)=2,2也是能被3整除的数的个数。

我们可以通过(k-1)/(n-1)得到数列被分成的段数,得到的这个数恰好也是在第k个数前,能被n整除的数的个数。数列本来就由能整除的数和不能整除的数组成,我们只需要把不能整除的个数k加上能整除的个数(k-1)/(n-1)就可以得到答案了。

ACcode:

 

ll f(ll a, ll b)
{
return b + (b - 1) /(a - 1);
}
int main()
{
int t;
cin >> t;
while (t--)
{
ll n, k;
cin >> n >> k;
cout << f(n, k)<<endl;
}
return 0;
}

 

 

 

posted @ 2021-03-09 10:49  Uiney  阅读(222)  评论(0编辑  收藏  举报