快速幂的两种写法
2011-09-21 04:05
169 查看
[code] 1: //非递归版本
2: //输入a,b; 求解a^b
3: #include<iostream>
4: #include<cstdio>
5: using namespace std;
6:
7: int main(){
8: int a,b;
9: //ans:最终结果
10: //count:while 循环执行的次数
11: scanf("%d%d",&a,&b);
12: int count=0,ans,tpans;
13: ans=1; tpans=a;
14: while (b){
15: ++count;
16: if (b&1) ans*=tpans;
17: tpans=tpans*tpans; b>>=1;
18: }
19: printf("Count=%d\na^b=%d\n",count,ans);
20: return 0;
21: }
[/code]
递归版本快速幂
[code] 1: //输入a,b,求解a^b
2: #include <iostream>
3: #include <cstdio>
4: //power(a,b) 返回a^b
5: int power(int a,int b){
6: if(b==1)return a;
7: int tpans=power(a,b>>1);
8: return tpans*tpans*((b&1)?a:1);
9: }
10: int main(){
11: int a,b;
12: scanf("%d%d",&a,&b);
13: printf("a^b=%d\n",power(a,b));
14: return 0;
15: }
[/code]
相关文章推荐
- vue-cli快速构建的反向代理(新版和旧版的两种不同的写法)
- 快速排序partition过程常见的两种写法+快速排序非递归实现
- poj3233Matrix Power Series(矩阵快速幂,两种写法)
- 快速排序partition过程常见的两种写法+快速排序非递归实现
- 快速排序的两种写法(站在巨人的肩膀上加深理解)
- 快速排序partition过程常见的两种写法+快速排序非递归实现
- CSU - 1356 Catch(dfs染色两种写法,和hdu4751比较)
- java代码中 两种路径符号的写法
- GridView 遍历每一行,两种写法
- struts2标签-下拉列表的两种写法
- [转]快速清除SQL Server日志的两种方法
- vuex的两种写法
- 快速幂的两种算法
- 二叉后序遍历的两种写法
- Model层的两种写法
- ASP.NET MVC中获取URL地址参数的两种写法
- mybatis执行批量更新batch update 的方法(提供oracle,mysql两种写法)
- 状态机的两种写法
- 单例模式的两种写法(饿汉式与懒汉式)
- 浅析Windows 2003的两种快速自动登录捷径