Friday 19 August 2016

UVA 10106 - Product

Problem Link : uva 10106 - Product
আগে একটা গুন দেখে নেই_
       ১২৩
       ১২৩
     ৩৬৯
   ২৪৬০
 ১২৩০০
১৫১২৯
এতাকেই আমরা programming এর ভাষায় এভাবে করব_
Seep 1:
১২৩        +     ১২৩  +   ১২৩
    ৩                 ২                ১
৩৬৯            ২৪৬       ১২৩
Step 2:
প্রথম গুন ফল এর সঙ্গে ০ টা ০
২য়  গুন ফল এর সঙ্গে ১ টা ০
৩য় গুন ফল এর সঙ্গে ২ টা ০ নিয়ে যোগ করি_
     ৩৬৯
   ২৪৬০
 ১২৩০০
১৫১২৯
এবার এপার টা এক্তু খেয়াল করি_.
১)    ৩*৩ করে গুন করে প্রথম এ বসালাম ৯
অর্থাৎ ০ নং পজিশনএর ৩, ০ নং পজিশন এর ৩ এর সঙ্গে গুন করে ০+০ নং পজিশন এ বসাই
২)   ২*৩ করে গুন করে এবারএ বসালাম ৬
অর্থাৎ ১ নং পজিশনএর ২ , ০ নং পজিশন এর ৩ এর সঙ্গে গুন করে ১+০ নং পজিশন এ বসাই
৩)   ১*৩ করে গুন করে এবারএ বসালাম ৩
অর্থাৎ ২নং পজিশনএর ১, ০ নং পজিশন এর ৩ এর সঙ্গে গুন করে ২+০ নং পজিশন এ বসাই
৪) ৩*২করে গুন করে এবারএ বসালাম ৬+৬
অর্থাৎ ০ নং পজিশনএর ৩, ১নং পজিশন এর ২এর সঙ্গে গুন করে ০+১ নং পজিশন এ বসাইআগে যা এক নং ১ নংএ ছিল তা যোগ করি অর্থাৎ ৬+৬
এভাবে চলতে থাকবে_
Example:    er[i+j]+=cr[i]*dr[j];
Uva 10106 - Product code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
       char ar[300],br[300];
       long long i,cr[300],l1,l2,dr[300],l,j;
       while(cin>>ar>>br)
       {
              long long er[600]={0};
              l1=strlen(ar);
              l2=strlen(br);
              for(i=l1-1;i>=0;i--)
              cr[l1-1-i]=ar[i]-'0';
              for(i=l2-1;i>=0;i--)
              dr[l2-1-i]=br[i]-'0';
              for(i=0;i<l1;i++)
              {
                     for(j=0;j<l2;j++)
                     {
                          er[i+j]+=cr[i]*dr[j];
                          er[i+j+1]+=er[i+j]/10;
                          er[i+j]%=10;
                         // cout<<er[i+j]<<" "<<er[i+j+1]<<endl;
                     }
              }
              l=l1+l2;
              while(er[l]==0&&l>0)
                     l--;
              for(i=l;i>=0;i--)
                     cout<<er[i];
              cout<<endl;


       }
       return 0;
}



No comments:

Post a Comment