O(lg p)计算n^p
来源:互联网 发布:淘宝介入换货会怎么样 编辑:程序博客网 时间:2024/05/16 01:05
把指数转化为二进制,然后使用Scaling Method,时间复杂度为O(lg p)。
- unsigned power(unsigned n, unsigned p)
- {
- unsigned k = 1;
- while (p>1) {
- if(0 != (p &1))
- k *= n;
- n *= n;
- p /= 2;
- }
- return n*k;
- }
- int main(int argc, char *argv[])
- {
- int n, p;
- n = atoi(argv[1]);
- p = atoi(argv[2]);
- printf("power(%d,%d)=%d/n", n, p, power(n,p));
- }
设n = m, p = 110101
第1次, k = m^1,n = m^10.
第2次, k = m^1,n = m^100.
第3次, k = m^1 * m^100 = m^101,n = m^1000.
第4次, k = m^101,n = m^10000.
第5次, k = m^101 * m^10000 = m^10101,n = m^100000.
第6次, p = 1, 终止。
k*n = m^10101 * m^100000 = m ^ 110101。
- O(lg p)计算n^p
- printf("%d\n",*p+++*++p);
- 为什么phi(p^n)=p^n-p^(n-1)
- 三个单链表交集(O(m+n+p))
- iOS框架介绍——N&O&P字头
- Omni completion (^O^N^P) Pattern not found
- Omni completion (^O^N^P) Pattern not found 解决
- int *p[n]; int (*p)[n];
- (*p)[n]和*P[n]解析。
- 电机扭矩计算公式T=9550*P/n
- p;
- p
- p
- p
- p
- P
- :-P
- p
- 对aimingoo"架构师能力模型"一文的读后感
- MFC使用教程(下)
- MFC的运行顺序
- MFC框架中WM_COMMAND消息响应顺序
- 使用 Windows 脚本文件 (.wsf)
- O(lg p)计算n^p
- 第一次使用CSDN BLOG
- Flex初学指导
- 从头再来!!
- 01.10.2009
- “fstream.h”: No such file or directory
- 建立一个模态对话框(MFC)
- Windows消息
- Linux Shell简介