欢迎来到小居数码网-一家分享数码知识,生活小常识的网站,希望可以帮助到您。

当前位置:生活小常识 > 数码知识 >
优质

快速幂运算步骤(2的5次方怎么计算)

数码知识

刘永风优秀作者

原创内容 来源:小居数码网 时间:2024-01-08 19:51:01 阅读() 收藏:49 分享:55

导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有298个文字,大小约为2KB,预计阅读时间1分钟。

在m和n都属于正数,并且m的n次方不超过LONG_MAX的情况下,如何求出m的n次方呢?一般都会想到用一个循环,如下

2的5次方怎么计算

long result = 1;

for (int i = 0; i < n; i++)

result * = m;

result即为所求,算法复杂度O(n)。这样也能工作,但是当m和n变大时,效率会相当低下,如何优化呢?考虑2的4次方的情况,其实就是4个2相乘法;有没有看出撒问题呢?是的,重复计算!前二个2相乘的结果可以直接用,后面两个2的相乘不用再计算,即是

2X2X2X2 = 4X4

考虑2的5次方,即5个2相乘的情况,同样的道理

2X2X2X2X2 = 4X4X2

所呈现出来的规律即是

m的n次方,在n为偶数时,可以变成 m的n/2次方的平方;在n为奇数时,则有n - 1为偶数,则变成m的(n-1)/2次方的平方再乘以m, 从n变成n/2,问题规模变小,中间计算结果可重复利用,可用递归解决,其算法复杂度变成O(logn)。具体代码见下:

运行结果如下

上面就是小居数码小编今天给大家介绍的关于(2的5次方怎么计算)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

94%的朋友还想知道的:

(322)个朋友认为回复得到帮助。

部分文章信息来源于以及网友投稿,转载请说明出处。

本文标题:快速幂运算步骤(2的5次方怎么计算):http://sjzlt.cn/shuma/110083.html

猜你喜欢