dalao救救 90分 第二个测试点没过 附第二个测试点的数据

P3612 [USACO17JAN] Secret Cow Code S

Liverpoool @ 2023-02-02 16:03:08

#include<iostream>
#include<string>
#include<cmath>
using namespace std;

int main()
{
    string s;
    cin >> s;
    long long n;
    cin >> n;
    long long i = n;
    for (int factor = log2(n / s.length()) + 1; factor > 0; factor--)
    {
        if (i == s.length() * pow(2, factor - 1) + 1)
        {
            i = s.length() * pow(2, factor - 1);
        }
        else if (i > s.length() * pow(2, factor - 1) + 1)
        {
            i = i - s.length() * pow(2, factor - 1) - 1;
        }
    }
    cout << s[i - 1];
    return 0;
}

测试点2 输入:ABCDEFGHIJKLMNOPQRSTUVWXYZ 99999999999999999 输出:D


by lmsjyzj @ 2023-04-07 03:40:18

醉了,我的也是,正确答案是D,我在自己机器上跑出来的答案也是D,但是在洛谷跑出来的答案是G.


by lmsjyzj @ 2023-04-07 03:53:01

@Liverpoool 我知道我自己的代码哪里出问题了, 就是要自己写pow函数,不能用机器的pow函数。因为机器pow函数输出的是double会有误差


by Liverpoool @ 2023-08-30 15:48:05

@lmsjyzj 哦哦好的 才看到 感谢


|