关于位数判断的时间差别 求看

P1217 [USACO1.5] 回文质数 Prime Palindromes

justin_seven @ 2022-12-20 23:34:15

这种第一种 用着就不会tle 大佬们看第二种

bool ws(int k) 
    {
        if(k>=10 && k<100 && k!=11 || k>=1000 && k<10000)return false;
        if(k>=100000 && k<1000000 || k>=10000000 && k<100000000)return false;
        return true;
    }

第二种

int ws(int n)
{
    if (n % 2 != 0 || n == 11) return 1;
    return 0;
}

用成bool也没有用 求大佬和我说下这两种的区别 为什么第二种会tle 因为我刚刚学 觉得第二种这样的反而更加简洁


by justin_seven @ 2022-12-20 23:35:04

第二种就是如果是偶数肯定不是回文 特判了11


by 3blue1blue @ 2022-12-21 08:42:36

@justin_seven 第二种想表达的是ceil(log10(n+1))?


by HYliumingxuan @ 2022-12-21 08:51:40

应该还是做法问题,位数是偶数的回文数不是质数,而不是偶数不是回文


|