题意:
询问第i次成长后,向上的三角形有几个
思路:
第i次成长会到达第i+1个图形,底边是2^i,然后是一个等差数列求和
ans= (2^n-1 )*(2^n-2)+2^n-2
#include <iostream>
#include <stdio.h>
using namespace std;
#define mod 1000000007
typedef long long ll;
ll sum=0;
ll quick( ll x,ll y )
{
ll res=1;
ll z=x;
while(y)
{
if(y%2)
res=(res*z)%mod;
z=(z*z)%mod;
y=y/2;
}
return res;
}
int main()
{
ll num;
cin>>num;
if(num==0)
cout<<1<<endl;
else
{
num++;
sum+=quick(2,num-1)*quick(2,num-2);
sum%=mod;
sum+=quick(2,num-2);
cout<<sum%mod<<endl;
}
return 0;
}
数学渣渣竟然推出数学公式了。握草;
数学渣渣竟然推出数学公式了。握草;