是不是有专门 hack 快速幂的,hack 数据是什么呢?
查看原帖
是不是有专门 hack 快速幂的,hack 数据是什么呢?
151129
JOOJEE楼主2023/2/1 21:16
#include <stdio.h>

const long long  MAXN = 1000000000;

int numberlen(long long val)
{
    int len=0;
    while( val )
    {
        len++;
        val/=10;
    }
    return len;
}

int main()
{
    long long a,b,c=1;
    int lenc,lena,f=1;

    scanf("%lld%lld",&a,&b);

    while( b )
    {
        if( b%2==1 )
        {
            lenc = numberlen(c);
            lena = numberlen(a);

            if( a<0 || lenc>10 || lena>10 || lenc+lena>11 ){ f=0; break; }
            c = c * a;
            if( c<0 || c > MAXN ){ f=0; break; }
        }

        a = a*a;
        b = b/2;

        if( b )
        {
            lena = numberlen(a);
            if(a<0 || lena>10) {f=0; break; }
        }
    }

    if( f )
        printf("%lld\n", c );
    else
        printf("-1\n");

}

2023/2/1 21:16
加载中...