কম্পিউটার

দুটি স্ট্রিংকে গুণ করার প্রোগ্রাম এবং C++ এ স্ট্রিং হিসাবে ফলাফল ফেরত দেয়


ধরুন আমাদের স্ট্রিং হিসাবে দুটি সংখ্যা আছে। আমাদের তাদের গুণ করতে হবে এবং ফলাফলটি স্ট্রিং-এও দিতে হবে। সুতরাং যদি সংখ্যাগুলি "28" এবং "25" হয়, তাহলে ফলাফল হবে "700"

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • x এবং y দুটি আর্গুমেন্ট নিলে এটি x ভাগ করে y

    নির্দেশ করে
  • যদি x <−Infinity এবং y =1 হয়, তাহলে ইনফিনিটি ফেরত দিন

  • a :=|x|, b :=|y| এবং উত্তর :=0

  • যখন a − b>=0

    • p :=0

    • যখন a − (বামে স্থানান্তরিত b (বামে স্থানান্তরিত 1 p বার))>=0

      • p :=p + 1

    • a :=a − (বাম শিফট b, p বার)

    • ans :=ans + বাম শিফট 1 p বার

  • যদি x> 0 সত্য হয় এবং y> 0ও সত্য হয়, তাহলে উত্তর দিন, অন্যথায় ফেরত দিন (− 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"

  1. C++ এ দুটি বাইনারি স্ট্রিং যোগ করার জন্য প্রোগ্রাম

  2. জাভাতে দুটি স্ট্রিং তুলনা করার জন্য প্রোগ্রাম

  3. দুটি বাইনারি স্ট্রিং যোগ করার প্রোগ্রাম, এবং C++ এ বাইনারি স্ট্রিং হিসাবেও ফিরে আসে

  4. C++ এ স্ট্রিং গুণ করুন