首页 > 其他 > 详细

43. 字符串相乘

时间:2020-03-18 17:45:36      阅读:40      评论:0      收藏:0      [点我收藏+]
 1 //"12" * "34" 
 2 //      1 2
 3 //     *3 4
 4 //    ————————
 5 //      4 8
 6 //    3 6
 7 //    ———————— 
 8 //    4 0 8
 9 // ***注意第二个字符串在第一层循环***
10 
11 class Solution 
12 {
13 public:
14     string multiply(string num1, string num2) 
15     {
16         int n1=num1.size();
17         int n2=num2.size();
18         string res(n1+n2,0);
19 
20         for(int i=n2-1;i>=0;i--)
21         {
22             for(int j=n1-1;j>=0;j--)
23             {
24                 int temp=(res[i+j+1]-0)+(num1[j]-0)*(num2[i]-0);
25                 res[i+j+1]=temp%10+0;//当前位
26                 res[i+j]+=temp/10; //前一位加上进位,res[i+j]已经初始化为‘0‘,加上int类型自动转化为char,所以此处不加‘0‘
27             }
28         }
29         
30         //去除首位‘0‘
31         for(int i=0;i<n1+n2;i++)
32         {
33             if(res[i]!=0)
34                 return res.substr(i);
35         }
36         return "0";
37     }
38 };

 

43. 字符串相乘

原文:https://www.cnblogs.com/yuhong1103/p/12518331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!