简介
自己从大数加法改过来的模板,低速计算n的t次幂,n,t小于等于100速度能够保证
模板
#include <bits/stdc++.h>
using namespace std;
string cal(string a,int cs)
{
string jk=a;
string jc=a;
reverse(a.begin(),a.end());
for(int k=0;k<cs-1;k++)
{
for(int i=jk.size();i<a.size();i++)
jk='0'+jk;
reverse(jk.begin(),jk.end());
int jw=0,n,now;
string t="";
for(int i=0;i<a.size();i++)
{
n=jk[i]+a[i]-'0'-'0'+jw;
jw=n/10;
now=n%10;
t+=char(now+'0');
}
if(jw)
t+="1";
a=t;
jk=jc;
}
reverse(a.begin(),a.end());
return a;
}
string qp(int cs,int n)
{
stringstream s;
s<<cs;
string a;
s>>a;
string t;
for(int i=0;i<n;i++)
{
t=cal(a,cs);
//cout<<t<<"
";
a=t;
}
return a;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
int n,t;
cin>>n>>t;
if(t)
cout<<qp(n,t-1)<<endl;
else
cout<<1<<endl;
}
}
python版本(速度较快)
t=int(input())
for i in range(t):
a,b=map(int,input().split())
print(a**b)
使用
先输入计算的次数,然后每行两个数第一个数是n第二个数是t