幂函数2^n算法(蛮力迭代版)、(优化递归版)
来源:互联网 发布:itools软件 编辑:程序博客网 时间:2024/05/29 03:54
问题描述:
在禁止超过1位的位移运算的前提下,对任意非负整数n,计算2^n
蛮力迭代版:
// 在禁止超过1位的位移运算的前提下,对任意非负整数n,计算2^n#include <stdio.h>int main(){int n = 5;int pow = 1; //将累积器初始化为1 while (0 < n--){pow <<= 1; //O(1)将累积器翻倍 }printf("%d\n",pow); return 0;}运行结果:
32
--------------------------------
Process exited with return value 0
Press any key to continue . . .
优化递归版:
主要算法:
① n = 0 ② n为奇数 ③n为偶数
// 幂函数 2^n算法(优化递归版)#include <stdio.h>inline int sqr(int a){ return a * a; } int power2(int n){if (0 == n)return 1; // 奇数 偶数 return (n & 1)? sqr( power2(n >> 1))<<1 : sqr(power2(n >> 1)); } int main(){printf("%d\n",power2(3));return 0;}
运行结果:
8
--------------------------------
Process exited with return value 0
Press any key to continue . . .
0 0
- 幂函数2^n算法(蛮力迭代版)、(优化递归版)
- N阶乘算法 (递归)
- NOJ1267 N皇后(非递归算法)
- NOJ1267 N皇后(非递归算法)
- N的阶乘(应用递归函数)
- 【C语言】DigitSum(n) (递归函数)
- -汉诺塔-递归算法(JS递归函数)
- -汉诺塔-递归算法(JS递归函数)
- 问题二:用递归算法设计函数,求1*3*5*7*…*(2n-1)。(提示:可以先写出递归公式再求解)
- 递归算法-----递归算法优化------非递归算法(递推,迭代)----运行时间
- 求最大公约数(欧几里得算法尾递归版)+N皇后算法(位运算版)
- 编写递归函数求出n的阶乘(自定义main函数,调用定义的递归函数)
- 算法常用的时间复杂度(log(n),sqrt(x),n,n*log(n),n^2,n^3,2^n)的函数坐标图
- n皇后问题递归算法(回溯法)
- 递归分治算法之N皇后问题(Java版本)
- 填充算法(二)优化递归填充算法
- 【C语言】实现n^k(递归函数)
- 递归算法n!
- 十八周周赛A题Dubstep
- 百度地图+安卓SDK开发学习之百度地图初始化
- Delphi中几种关闭方法的介绍和比较
- Proxy
- 高校俱乐部 之 整数问题
- 幂函数2^n算法(蛮力迭代版)、(优化递归版)
- 希腊人1
- 253 - Cube painting
- 请访问我的新空间 www.jackyshen.com 此博客近期停止更新
- U-boot编译出错(软浮点编译错误arm-linux-ld: ERROR)
- 2013年末总结
- Action:=caFree
- NetBeans快捷键积累
- Thinking in java之接口