1. 程式人生 > 實用技巧 >CodeForces1352C - K-th Not Divisible by n - 推導公式

CodeForces1352C - K-th Not Divisible by n - 推導公式

題意:
給出一個\(n\)\(k\),要求輸出第\(k\)個不被\(n\)整除的數字。

思路:
每個能被\(n\)整除的數字之間,相鄰\(n-1\)個數。每組數之間進行分割,會有\(n-1-1=n-2\)個部分。
我本來是想著通過另外一個變數不斷尋找,當這個變數>=k的時候,再for迴圈往回找,可是程式碼實現部分我找bug好久,樣例都還是輸出錯誤。
之後,正確思路基礎上,
從而可以推匯出公式:\(k+(k-1) /(n-1)\)
PS:其實這個公式的推導我還是不太懂。這個思路是我自己之前做題的時候想到的,和這題的題解有部分相同。

AC程式碼:

#include <iostream>
#include <string.h>
#include <algorithm>
#include <cmath>
#include <map>
using namespace std;
typedef long long ll;

int main()
{
    int T;
    cin>>T;
    while(T--)
    {
        int n,k;
        cin>>n>>k;
        cout<<k+(k-1)/(n-1)<<endl;
    }
    return 0;
}