用C ++乘字符串
假设我们有两个数字作为字符串。我们必须将它们相乘并将结果也以字符串形式返回。因此,如果数字是“26”和“12”,则结果将是“312”
为了解决这个问题,我们将遵循以下步骤-
取两个参数x和y表示x除以y
如果x<-Infinity且y=1,则返回无穷大
a:=|x|,b:=|y|和ans:=0
而a–b>=0
p:=p+1
p:=0
而a–(左移b(左移1p次))>=0
a:=a–(左移b,p次)
ans:=ans+左移1p次
如果x>0为真且y>0也为真,则返回ans,否则返回(–ans)
例子(C++)
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
string multiply(string num1, string num2);
};
string Solution::multiply(string nums1, string nums2) {
int n = nums1.size();
int m = nums2.size();
string ans(n + m, '0');
for(int i = n - 1; i>=0; i--){
for(int j = m - 1; j >= 0; j--){
int p = (nums1[i] - '0') * (nums2[j] - '0') + (ans[i + j + 1] - '0');
ans[i+j+1] = p % 10 + '0';
ans[i+j] += p / 10 ;
}
}
for(int i = 0; i < m + n; i++){
if(ans[i] !='0')return ans.substr(i);
}
return "0";
}
main(){
Solution ob;
cout << ob.multiply("28", "25");
}输入值
"26" "12"
输出结果
"312"