D. 田田的账号
时间限制 1000 ms 内存限制 65536
KB
题目描述
田田申请了一个新的oj账号,打算取一个霸气而简单的名字。 什么叫简单呢?说白了田田脑子不好使,只能记住abcd这4个字母组成单词。 怎么叫霸气呢?田田认为a个个数一定要有奇数个,b的个数一定要有偶数个(包括0)才可以。 现在田田取了一个长为n的账号,但是由于田田的记性实在太差了,而把账号忘记了. 于是把这个问题交给了聪明的wzt,而他认为这道题太过于简单就把这道题交给了你 究竟这个账号有多少种可能?你只需得到这个结果模109+7的值
输入格式
多组case,第一行为case数T,之后T行每行一个整数n。 1≤n≤109,T≤100
输出格式
一个case对应一行输出
输入样例
2
1
2
输出样例
1
4
找规律+快速幂#include <iostream>
#include <string>
#include <cstdio>
#include <map>
typedef long long lld;
using namespace std;
lld PowMod(lld a,lld b,lld mod)
{
lld ans = 1;
while(b)
{
if(b&1)
ans = (ans *a) %mod;
a = (a *a) %mod;
b >>= 1;
}
return ans % mod;
}
int main()
{
int T;
lld n;
scanf("%d",&T);
while(T--)
{
scanf("%lld",&n);
lld b = n-1;
cout << PowMod(4,b,1e9+7) << endl;
}
return 0;
}