程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> [leetcode] 43 Multiply Strings(模擬大數乘法)

[leetcode] 43 Multiply Strings(模擬大數乘法)

編輯:關於C++

很簡單的題目,模擬大數乘法。

思路:

 

第一個字符串的第i位乘以第二個字符串的第j位一定是結果的第i+j位,如果i+j已經有值,直接加上去就OK,並用temp保存進位,

最後記得將結果反轉,去掉前置0。這樣的算法的復雜度是O(n2).利用FFT可以將算法優化到O(nlogn),關於FFT的實現在此不再贅述,可以參考算法導論或者網上其他資料。

 

另外,我的博客中實現了關於大數加減乘除的詳細代碼,請參考我的 博客鏈接:

 

 

class Solution {
public:
    string multiply(string num1, string num2) {
        string s(1000,'0');  
        reverse(num1.begin(),num1.end());  
        reverse(num2.begin(),num2.end());  
        for(int i=0;i

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved