如何求m的n次方(結果很大)

2021-07-26 11:32:10 字數 449 閱讀 3667

如何求出2的1024次方的準確值?可以將大數乘法進行迭代,結果儲存在陣列中。但是這樣速度極慢,這裡給出一種方法,但仍舊比python直譯器慢一些,可以繼續優化。

如果將大數乘法進行迭代,那麼每次運算如果一位出現數值大於9,都需要進製,這是不必要的。

源**:

#include#include#include#includebool check(int result,int n) //檢查是否需要進製

} return 0;

}using namespace std;

int main()

}while (result[pointer - 1] > 9)

}} cout<9)

}while (result[pointer - 1] > 9)

cout<<"the result is:"<-1; i--)

{ cout<

求m的n次方

不考慮高精度,一般有三種做法 最笨的做法是把m連乘n 1次,這個就不寫了。第二種做法很好理解,是遞迴的快速冪,當n是偶數時,分解成兩個n 2次方然後再乘起來,n是奇數的時候分解成兩個n 2次方乘起來再多乘乙個m 第三種做法有點難得理解,是將n化成二進位制,然後把1的那些數字乘起來 經過測試,n很大的...

求x的n次方結果,時間優化

if n 0 判斷負指數 flag 1 else flag 0 n abs n 全設為正 i 2 從list 2 開始計算 exp 1 前乙個陣列的指數狀態 if len list n 1 若已經計算過,則返回 if flag return 1 list n return list n while ...

求a的n次方

此題面試時常有 解答方法有以下三種 1。直接迭代求解,這個很簡單,複雜度o n 1。分治法。複雜度 logn a a n 2 a an 1 如下 intpower inta intn 3.此方法複雜度為 n的二進位制表示中最高位1的index 原理為 事先建立a的 2m m為 0,x 的表。指導找到...