#include<iostream>
using namespace std;
long long fapow(int n, int k)
{
long long q = 1;
while (k)
{//此方法相当于把幂次k看成二进制,一位一位的看
//如10看成1010,与底数n*=n相对应
if (k & 1)//k%2
q *= n;//每一步操作得到的结果
n *= n;//对应的
k >>= 1;//k/=2
}
return q;
}
int main()
{
int n, k;
cin >> n >> k;
long long q = fapow(n, k);
cout << q;
return 0;
}
快速幂的一种模板
最新推荐文章于 2024-08-21 18:16:36 发布
本文介绍了如何使用C++编写一个名为`fapow`的函数,用于高效计算整数幂。该函数通过将幂次k转换为二进制形式,逐位进行乘法运算,避免了重复计算,提高计算效率。
摘要由CSDN通过智能技术生成