二分求幂 A的B次方
发布日期:2021-07-22 07:28:50 浏览次数:5 分类:技术文章

本文共 335 字,大约阅读时间需要 1 分钟。

一、方法

将a的b次转换为若干个a的2^k次的积,并尽可能减少分解结果的个数,即求b的二进制数,再对对应为1的位进行累乘得到结果。

因为求幂结果可能很大,所以要根据情况调整结果的类型。

二、代码

int a, b;	int ans = 1;	//保存最终结果,初值为1	cin >> a >> b;	while (b != 0) {
//b不为0,即对b转换二进制未结束 if (b % 2 == 1) {
//当前位为1,需要累成a的2^k次至ans,2^k为当前位权重 ans *= a; } b /= 2; a *= a; //求下一位二进制位权重,从a的1次开始,一次求a的2次,a的4次…… } cout << ans;

转载地址:https://blog.csdn.net/m0_45689014/article/details/113175925 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C++ 由前序和中序重建二叉树
下一篇:筛选一定范围内素数 c/c++模板

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月08日 15时58分33秒