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; }