请大佬们看过来QAQ 解答必关注
查看原帖
请大佬们看过来QAQ 解答必关注
1261713
vvwvv楼主2025/1/28 03:11

我把dfs()函数的形参 len 与 n 的类型设为int时 ,样例2,7,8,9 都是T,然后10是WA。而将len与n的类型设置为long long 就AC了。我想知道为什么不同类型会导致这种情况,所以请大佬帮忙解答一下QAQ 解答必关注大佬,成为大佬的狂热粉丝

#include<bits/stdc++.h>
using namespace std;
using ll = unsigned long long ;
ll qwq;//记录初始串的长度
string x;//初始串
char dfs( int len , int n)
{
    if(len == qwq || n<qwq)
        return x[n];
    if(n==len/2)
        return dfs(len/2 , len/2-1);
    if(n<len/2)
        return dfs(len/2 , n);
    if(n<len)
        return dfs(len/2 , n-1-len/2);
}
int main()
{
    ll n;
    cin>>x>>n;
    n--;//变为string的下标
    qwq = x.size();
    ll len = qwq;
    ll i = 0 ;
    while(len<n)
    {//看初始串经过几次操作,才能使其刚好大于等于n
        len*=2;
        i++;
    }
    cout<<dfs(len , n);
    return 0;
}
2025/1/28 03:11
加载中...