[LeetCode]Multiply Strings

本文介绍了一种使用C++实现的大数乘法算法。该算法能够处理任意大小的非负整数相乘的问题,并返回字符串形式的结果。通过逐位相乘并进位的方法,实现了高效的计算。

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.

 

 大数的乘法问题,运用乘法规则就好了。
 1 class Solution {
 2 public:
 3     string multiply(string num1, string num2) {
 4         if(num1=="0" || num2=="0") return "0";
 5         string result;
 6         int len1=num1.length();
 7         int len2=num2.length();
 8         int len=len1+len2;
 9         int* n1=new int[len1];
10         int* n2=new int[len2];
11         int* multi=new int[len];
12         for(int i=0;i<len;i++)
13         {
14             multi[i]=0;
15         }
16         for(int i=0;i<len1;i++)
17         {
18             n1[i]=num1[len1-i-1]-'0';
19         }
20         for(int i=0;i<len2;i++)
21         {
22             n2[i]=num2[len2-i-1]-'0';
23         }
24         for(int i=0;i<len1;i++)
25         {
26             for(int j=0;j<len2;j++)
27             {
28                 multi[i+j]=multi[i+j]+n1[i]*n2[j];
29             }
30         }
31         for (int i=0;i<len;i++)
32         {
33             int tmp=multi[i];
34             multi[i]=tmp%10;
35             multi[i+1]+=tmp/10;
36         }
37         int first_nozero;
38         for(int i=len-1;i>=0;i--)
39         {
40             if(multi[i]!=0)
41             {
42                 first_nozero=i;
43                 break;
44             }
45         }
46         for(int i=first_nozero;i>=0;i--)
47         {
48             result+=char(multi[i]+'0');
49         }
50         delete []n1;
51         delete []n2;
52         delete []multi;
53         
54         return result;
55     }
56 };

 

转载于:https://www.cnblogs.com/Sean-le/p/4734934.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值