1049: QAQ的公式求解(一)
时间限制: 1 Sec 内存限制: 128 MB提交: 113 解决: 51
[ 提交][ 状态][ 讨论版]
题目描述
QAQ给定一个小公式,即:
f[i]=f[i−1]∗x
f[i]=f[i−1]∗x(
i>=2
i>=2)。他想知道
f[n]
f[n]的结果。
输入
第一行输入一个整数
T
T,代表有
T
T组测试数据。
每组数据输入三个整数 f[1]、x、n f[1]、x、n,分别代表上面提到的信息。
注: 1<=T<=10000,1<=f[1],x,n<=109 1<=T<=10000,1<=f[1],x,n<=109。
输出
对每组测试数据,输出一个整数代表最后的结果。
由于结果很大,请对 109+7 109+7取余。
样例输入
3
1 1 1
4 5 6
7 8 9
样例输出
1
12500
117440512
提示
来源
代码:
#include<stdio.h>
#include<math.h>
#define MOD 1000000007//不能写成1000000000+7,会出错;
long long quick_pow(long long x,long long b)
{
long long ans=1,base=x;
while(b)
{
if(b&1)
{
ans=(ans*base)%MOD;
}
base=(base*base)%MOD;
b>>=1;
}
return ans;
}
int main()
{
int t;
long long n,k,x;
scanf("%d",&t);
while(t--)
{
long long ans1=0,ans2;
scanf("%lld%lld%lld",&k,&x,&n);
ans1=quick_pow(x,n-1);
ans2=ans1*k%MOD;
printf("%lld\n",ans2);
}
return 0;
}