【算法】求n的m次方(快速幂取模)

编程入门 行业动态 更新时间:2024-10-28 00:14:42

【算法】求n的m<a href=https://www.elefans.com/category/jswz/34/1764043.html style=次方(快速幂取模)"/>

【算法】求n的m次方(快速幂取模)

题目

求n的m次方,n,m均为自然数。

解析

看似简单的题目,但是要想写的高效还不是那么容易想出来。

实现

unsigned int power(unsigned int a, unsigned int n)
{unsigned int i, s;if (!n) return 1;if(!a) return 0;i=n;s=a;while (i>>=1)//每次移动递增{s*=s;if ((i&n)==i) s*=a;//解决奇偶}return s;
}

以上算法也可说是:快速幂取模算法的一个优化。
方法二,比较好理解点

unsigned long power(unsigned long m, unsigned long n) 
{ unsigned long t = 1; while(n > 0){ if(n & 0x01UL == 1)  t *= m; m *= m; n >>= 1; }return t; 
} 

更多推荐

【算法】求n的m次方(快速幂取模)

本文发布于:2023-06-30 16:35:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/963156.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:次方   算法   快速   幂取模

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!