第二章 :查詢與排序-------2.20實戰_快速設計一個高效的求n次冪的演算法
快速設計一個高效的求n次冪的演算法:
思路:翻倍求解
#include<iostream>
using namespace std;
//普通求一個數的冪的方法
int pow0(int a,int n){
int res=1;
for(int i=0;i<n;i++){
res*=a;
}
return res;
}
//優化的求法
int pow(int a,int n){
if(n==0) return 1;
int res=a;
int ex=1;
while((ex<<1)<n){ //指數試翻倍
res*=res; //結果翻倍
ex<<=1; //對應指數也翻倍
}
return res*pow(a,(n-ex)); //遞迴求解a的(n-ex)次方
}
int main(){
cout<<pow0(2,0)<<endl;
cout<<pow(2,3);
return 0;
}
結果:
相關文章
- 第二章 :查詢與排序-------2.16 解題實戰_小白上樓梯(遞迴設計)排序遞迴
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 第二章 :查詢與排序-------2.15 分析10種排序演算法的穩定性排序演算法
- 第二章 :查詢與排序-------希爾排序排序
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- 一個數number的n次冪 python的pow函式Python函式
- 歸併排序與快速排序的一個實現與理解排序
- 第三章 :查詢與排序-------3.2你需要掌握的快速排序演算法排序演算法
- 計算2的N次冪n 可輸入,n為自然數
- 第二章 :查詢與排序-------2.10常見函式的複雜度計算排序函式複雜度
- 第二章 :查詢與排序-------遞迴形式進行插入排序排序遞迴
- 第二章 :查詢與排序-------2.13_三種典型遞迴形式演算法的效能分析排序遞迴演算法
- Flutter實戰(一)寫一個天氣查詢的APPFlutterAPP
- 找到一個數最接近的比它大的2的n次冪的程式碼分析
- 如何設計一個更通用的查詢介面
- 面試常問的幾個排序和查詢演算法,PHP 實現面試排序演算法PHP
- 排序演算法之快速排序的實現排序演算法
- Redis 設計與實現 (八)--排序、慢查詢日誌、監視器Redis排序
- 第二章 :查詢與排序-------2.17解題實戰_旋轉陣列的最小數字(改造二分法)排序陣列
- 第二章 :查詢與排序-------2.18題目講解_在有空字串中的有序字串陣列中查詢排序字串陣列
- Flutter實戰1 --- 寫一個天氣查詢的APPFlutterAPP
- Flutter實戰2 — 寫一個天氣查詢的APPFlutterAPP
- Flutter實戰(二)寫一個天氣查詢的APPFlutterAPP
- Flutter實戰2 --- 寫一個天氣查詢的APPFlutterAPP
- ByteHouse 查詢最佳化器的設計與實現
- 結構與演算法(04):排序規則與查詢演算法演算法排序
- Quick Pow: 如何快速求冪UI
- SQL 如何查詢連續上漲 N 次的記錄SQL
- 【資料結構與演算法】快速冪資料結構演算法
- n項也成立:左右失衡的3次冪恆等式恆等式
- 第三章:查詢與排序(下)----------- 3.19 計數排序排序
- 第三章:查詢與排序(下)----------- 3.10 實戰解題_哪個數字超過了一半?排序
- jQuery查詢第n個li元素jQuery
- 排序演算法-Java實現快速排序演算法排序演算法Java
- 在排序陣列中查詢元素的第一個和最後一個位置排序陣列
- 第二章 :查詢與排序-------遞迴經典問題——漢諾塔問題排序遞迴
- n數三層4次冪恆等式恆等式
- n數三層5次冪恆等式恆等式