使用 C++ 将两个字符串相乘并返回字符串结果的程序
假设我们有两个字符串数字,我们需要将它们相乘并返回字符串结果。例如,如果这两个数字是“28”和“25”,那么结果将是“700”
为此,我们需要按照以下步骤执行
获取两个参数 x 和 y,其中 x 除以 y
如果 x < −无穷大且 y = 1,则返回无穷大
a := |x|,b := |y|且 ans := 0
当 a − b >= 0 时
p := 0
当 a − (左移 b(左移 p 次)) >= 0 时
p := p + 1
a := a - (左移 b,p 次)
ans := ans + 左移 1 p 次
如果 x > 0 为真且 y > 0 也为真,那么返回 ans,否则返回(− ans)
以下实现可以帮助我们更好地理解,让我们仔细看看
示例
#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");
}输入
"28", "25"
输出
"700"
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP