在C ++中将两个字符串相乘并以字符串形式返回结果的程序

假设我们有两个数字作为字符串。我们必须将它们相乘,并以字符串形式返回结果。因此,如果数字分别是“ 28”和“ 25”,则结果将是“ 700”

为了解决这个问题,我们将遵循以下步骤-

  • 取两个参数x和y表示x除以y

  • 如果x <−Infinity并且y = 1,则返回无穷大

  • a:= | x |,b:= | y | 和ans:= 0

  • 而a − b> = 0

    • p:= p + 1

    • p:= 0

    • 而a-(左移b(左移1 p次))> = 0

    • 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"

    以上是 在C ++中将两个字符串相乘并以字符串形式返回结果的程序 的全部内容, 来源链接: utcz.com/z/331358.html

    回到顶部