【题目描述】
给出一个整数a
和一个正整数n(−1000000≤a≤1000000,1≤n≤10000)
,求乘方an
,即乘方结果。最终结果的绝对值不超过1000000
。
【输入】
一行,包含两个整数a
和n
。−1000000≤a≤1000000,1≤n≤10000
。
【输出】
一个整数,即乘方结果。题目保证最终结果的绝对值不超过1000000
。
【输入样例】
2 3
【输出样例】
8
1.可能超时用法:
include <bits/stdc++.h>
using namespace std;
long long a, n;
int main( )
{
cin >> a >> n;
for (int i=1;i<=n;i++)
{
a*=a;
}
cout << n;
return 0;
}
《简damn超时》
2.炒鸡快速幂
include <bits/stdc++.h>
using namespace std;
long long a, n, ans=1;
int main( )
{
cin >> a >> n;
while (n)
{
if (n%2==1)
{
ans=ansa;
}
n/=2;
a=aa;
}
cout << ans;
}
《快速难懂》