2.16 不使用递归, 写出快速求幂的程序2.19 寻找主元
分类:
编程语言 时间:
2015-08-25 23:28:39
阅读次数:
145
快速求正整数次幂,当然不能直接死乘。举个例子:3 ^ 999 = 3 * 3 * 3 * … * 3直接乘要做998次乘法。但事实上可以这样做,先求出2^k次幂:3 ^ 2 = 3 * 33 ^ 4 = (3 ^ 2) * (3 ^ 2)3 ^ 8 = (3 ^ 4) * (3 ^ 4)3 ^ 16...
分类:
编程语言 时间:
2015-08-18 00:59:27
阅读次数:
156
快速幂这个东西比较好理解,但实现起来到不老好办,记了几次老是忘,今天把它系统的总结一下防止忘记。 首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下: 假...
分类:
其他好文 时间:
2015-07-13 00:48:05
阅读次数:
146
1 #include 2 #include 3 //递归算法 4 int recursion(int a,int b) 5 { 6 int tem = 1; 7 if(b==0)return 1; 8 else if(b==1)return a; 9 tem =...
分类:
其他好文 时间:
2015-05-13 09:56:55
阅读次数:
130
这一题,主要是快速求幂的方法的应用。
可以看看快速求幂方法的原理:http://blog.csdn.net/qq_25425023/article/details/44316463
题目的大概意思是:
输入两个数p,a,p为素数,则直接输出no,否则判断a^p % p == a?等于就yes,不等于就no。
理解了题目的意思,就很容易了。
下面的是AC代码:
#include ...
分类:
其他好文 时间:
2015-05-05 08:57:17
阅读次数:
212
题目描述
Xinlv wrote some sequences on the paper a long time ago, they might be arithmetic or geometric sequences. The numbers are not very clear now, and only the first three numbers of each seq...
分类:
其他好文 时间:
2015-01-13 00:08:33
阅读次数:
258
只会写递归的,应该学学非递归的。 也是O(lgn)。比如要计算$a^b$,把b写成二进制,假设$b=11_{(10)}=1011_{(2)}=2^3+2^1+2^0$;所以$a^{11}=a^{2^3+2^1+2^0}=a^{2^3}*a^{2^3}*a^{2^0}$。这样我也就可以把每一位的乘积项...
分类:
其他好文 时间:
2014-10-12 14:03:47
阅读次数:
127
题目描述:给定b,p,k要求(b^p)%k思路:主要是快速求幂运算,有递归和非递归两种思路。递归有错误,应该是溢出问题#include #include #include #include #include #include #include #include #include #include #...
分类:
其他好文 时间:
2014-06-27 22:17:08
阅读次数:
275
如何快速求x得n次方呢?
首先C++里面有个pow如何实现呢?自己查查,里面使用double,肯定更麻烦,还有jianzhi 我们会顺手写下 int res=1; for(int
i=1;iusing namespace std;int pow1(int x,int n){ int res=1; f...
分类:
其他好文 时间:
2014-06-09 22:28:52
阅读次数:
373
#include
#include
#include
#include
using namespace std;
int pow(int x, int n)
{
int result = 1;
while (n > 0)
{
if (n % 2==1)
result *= x;...
分类:
其他好文 时间:
2014-06-03 05:08:33
阅读次数:
399