本文共 1016 字,大约阅读时间需要 3 分钟。
题意:给定两个整数num1、num2,计算两者乘积。
分析:大数相乘。此题较为简单,不包含正负号、小数点等复杂的情况。
代码:
(1)逐位相乘:
class Solution {public: string multiply(string num1, string num2) { int n1=num1.size(); int n2=num2.size(); vector v1(n1,0); vector v2(n2,0); vector num(n1+n2,0); for(int i=0;i(2)模拟乘法计算:0){ num[n++]=c; } string ans=""; for(int i=n-1;i>=0;--i){ ans+=(num[i]+'0'); } return ans; }};
class Solution {public: string multiply(string num1, string num2) { int n1=num1.size(); int n2=num2.size(); vector v1(n1,0); vector v2(n2,0); vector num(n1+n2,0); for(int i=0;i0) num[i+n2]+=c; } string ans=""; int k=n1+n2-1; while(k>=0&&num[k]==0) k--; if(k<0) return "0"; for(int i=k;i>=0;--i){ ans+=(num[i]+'0'); } return ans; }};
转载地址:http://jrebi.baihongyu.com/