zoukankan      html  css  js  c++  java
  • CodeForces1352C

    题意:
    给出一个(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;
    }
    
  • 相关阅读:
    WindowsForm:百科
    App-应用程式:百科
    ASP.NET:目录
    ASP.NET:百科
    操作平台:.NET
    DB-触发器:百科
    DB-DatabaseLink:百科
    5090 众数
    计数排序
    归并排序
  • 原文地址:https://www.cnblogs.com/OFSHK/p/13205272.html
Copyright © 2011-2022 走看看