- 牛客:猫猫与数列
首先想的是直接暴力求解,则答案会导致溢出,然后等式两边同时加上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++; }
标签:cout,long,else,理解,自用,更新,溢出,log From: https://www.cnblogs.com/crismiao/p/17347609.html