本文主要是介绍大整数相乘-简洁写法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
43. 字符串相乘 - 力扣(LeetCode)
基本思想是把乘法拆分开,每一位和字符串相乘,再加起来。
class Solution {
public:string multiply(string num1, string num2) {int len1=num1.size(),len2=num2.size();vector<int>arr(len1+len2,0); //初始化最大可能大小for(int i=len1-1;i>=0;i--){for(int j=len2-1;j>=0;j--)//每位相乘后相加保存{int index=len1+len2-1-(len1-1-i+len2-1-j);arr[index]+=(num1[i]-'0')*(num2[j]-'0');}}int index=len1+len2-1;while(index>=1) //进位{arr[index-1]+=arr[index]/10;arr[index]=arr[index]%10;index--;}index=0;while(index<len1+len2&&arr[index]==0)//去除前导零{index+=1;}if(index==len1+len2)return "0";string ans;for(int i=index;i<len1+len2;i++) //转换为字符串{ans+=arr[i]+'0';}return ans;}
};
这篇关于大整数相乘-简洁写法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!