[教育题[持续更新]]自用理解

发布时间 2023-04-23 20:21:38作者: Thecode_Wm
  1. 牛客:猫猫与数列

首先想的是直接暴力求解,则答案会导致溢出,然后等式两边同时加上log(以2为底)来防止溢出,并且能进行判断

   if(a[n-1]*log(a[n-2])>M)
   {
            cout<<n-1<<endl;
            break;
   }

当然这种情况一是成立时用的,else呢?则应该用long long来暴力进行枚举进行判断是否会出界,假设用n当作下标,那么就是求a[n-2]a[n-1]

 

    else
        {
            a[n]=1;
            for(int i=1;i<=a[n-1];i++)//求a[n-2]^a[n-1];
                a[n]*=a[n-2];
            if(a[n]>1e18)
            {
                cout<<n-1<<endl;
                break;
            }
            n++;
        }