zoukankan      html  css  js  c++  java
  • 【leetcode】43. 字符串相乘

    char * multiply(char * num1, char * num2){
        if(*num1=='0' || *num2=='0')
            return "0";
        int i, j, len1=strlen(num1), len2=strlen(num2),temp, pst=(len1+len2)*2-1, cur;
        char* s=(char*)calloc((len1+len2)*2+1,sizeof(char));
        memset(s,0x30,(len1+len2)*2);
        
        for(j=len2-1; j>=0; j--){
            for(i=len1-1; i>=0; i--){
                cur=(len1-1-i)+(len2-1-j);
                temp= (num2[j]-'0')*(num1[i]-'0');
                s[pst-cur-1]+= (s[pst-cur]-'0'+ temp%10)>=10?1 :0;
                s[pst-cur] = (s[pst-cur]-'0'+ temp%10)%10 +'0';            
                s[pst-cur-2]+= ((s[pst-cur-1]-'0'+ temp / 10)>=10)?1 :0;
                s[pst-cur-1]= (s[pst-cur-1]-'0' + temp/10)%10 + '0';
                
            }
        }
        
        while(s[pst-cur-2]=='0')
            cur--;
        return s+pst-cur-2;
    }
  • 相关阅读:
    2804 最大最小数质因数
    5429 多重背包
    1851 越狱
    Gvim使用
    3622 假期
    4906 删数问题
    2845 排序的代价
    poj 3352
    常用正则表达式汇总
    功能简单例子
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14108880.html
Copyright © 2011-2022 走看看