• [LeetCode] Multiply Strings


    Given two numbers represented as strings, return multiplication of the numbers as a string.

    Note: The numbers can be arbitrarily large and are non-negative.

    class Solution {
    public:
        string multiply(string num1, string num2) {
              string result;
              int len1 = num1.size(),len2 = num2.size();
              int flag = 0, n=0,num=0;
              if(num1=="0" || num2=="0")
                 return "0";
              for(int i=len2-1;i>=0;i--){//for(1)       num2  乘数
                  int len = result.size();
                  int k = len-(len2-i);
                  for(int j= len1-1;j>=0;j--){//for(2)  num1  被乘数
                      if(i==len2-1){
                          n = (num1[j]-'0')*(num2[i]-'0')+flag;
                          flag = (n-n%10)/10;
                          num  =  n-flag*10;
                          result.insert(result.begin(),num+'0');
                          if(j==0 && flag!=0){
                              result.insert(result.begin(),flag+'0');
                              flag = 0;
                          }         
                      }else{ 
                          if(k>=0){
                              n = (num1[j]-'0')*(num2[i]-'0')+flag+(result[k]-'0');
                              flag = (n-n%10)/10;
                              num  =  n-flag*10;
                              result[k] =  num+'0';
                              if(j==0 && flag!=0){
                                  result.insert(result.begin(),flag+'0');
                                  flag = 0;
                              } 
                          }else if(k<0){
                              n = (num1[j]-'0')*(num2[i]-'0')+flag;
                              flag = (n-n%10)/10;
                              num  =  n-flag*10;
                             result.insert(result.begin(),num +'0');
                             if(j==0 && flag!=0){
                                  result.insert(result.begin(),flag+'0');
                                  flag = 0;
                              }
                          }
                              
                          k--;
                      }
                  }//end for(2)
              }//end for(1)
            
              return result;
        }//end func
    };
  • 相关阅读:
    对象引用与对象克隆
    谁被回收了
    SpringMVC 返回json
    html基础
    org.hibernate.HibernateException: No Session found for current thread
    VB6之SendMessage模拟拖放事件
    VB6之GIF分解
    VB6之反编译工具VBRezQ
    VB6之WebBrowser控件
    (转载)VB6之鼠标移出事件
  • 原文地址:https://www.cnblogs.com/Xylophone/p/3924001.html
Copyright © 2020-2023  润新知