দুটি বড় সংখ্যা স্ট্রিং হিসেবে দেওয়া আছে। লক্ষ্য হল সেগুলো গুণ করে ফলাফলও স্ট্রিং হিসেবে ফেরত দেওয়া। যেমন "28" × "25" = "700"।
গ্রেড স্কুল গুণ পদ্ধতি: প্রতিটি ডিজিট গুণ করে পজিশন অনুযায়ী যোগ করা হয়। স্ট্রিং অ্যারে দিয়ে ইন্টারমিডিয়েট ফলাফল সংরক্ষণ করা হয়।
#includeusing 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"; } int main(){ Solution ob; cout << ob.multiply("28", "25"); return 0; }
ইনপুট "28", "25" এর জন্য আউটপুট:
"700"