[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 };
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步