Two Big Numbers Multiplication

দুইটি বড় সংখ্যার গুন করব কিভাবে?

আমরা সাধারনত ভাবি যে দুই টি অনেক বড় সংখ্যার গুন করা যায়না ।আজ দেখব কিভাবে আমরা দুইটি খুব বড় সংখ্যাকে স্ট্রিং ব্যাবহার করে আমরা খুব সহজেই গুন করতে পারি। এই জিনিস টা আমরা করব আমরা সাধারন গুন যেভাবে করি ঠিক সেই ভাবেই। যেমনঃ 111111111111111112131243234325435436546 * 234235435646546547657653453 = ????? নিম্নে প্রগ্রাম টা দেওয়া হলঃ


#include<bits/stdc++.h>

using namespace std;

int main()
{
    char A[100],B[100];
    cout << "Please enter two number\n(you\\
should first is bigest then second number\n and after first number then press Enter \n key then second number) :\n";
    cin >> A >> B;
    int m,n;
    m = strlen(A),n=strlen(B);
    int arr[m][200],result[200];
    for(int i=0; i< m; i++){
        for(int j=0; j< 200; j++)
            arr[i][j]=0;
    }
    int r=-1,k=0,c=0;
    for(int i=strlen(B)-1; i>=0; i--){
        r++;k=0,c=0;
        if(r!=0){
                for(k=0; k < r; k++){
                    arr[r][k]=0;
                }

            }
        for(int j=strlen(A)-1; j>=0; j--){
            int d = (int)(A[j]-'0') * (int) (B[i]-'0') + c;
            if(d>9){
                arr[r][k] = d%10;
                c = d/10;
            }
            else
                arr[r][k] = d;
            k++;
            if(j==0 && c!=0)
                arr[r][k++] = c;

        }

    }
    int sum = 0,p=0;c=0;
    for(int j=0; j < k; j++){
        sum=0;
        for(int i=0; i<=r; i++){
            sum+=arr[i][j];
        }
        sum+=c;
        if(sum>9){
                result[p++]=sum%10;
                c=sum/10;
            }
         else{
            result[p++]=sum;
            c=0;
        }
    }
    if(c!=0){
            result[p]=c;
        }
    cout << "Result of this two multiple is : ";
    for(int i=p-1; i>=0; i--){
        cout << result[i];
    }
    cout << endl<< endl;
    return 0;
}