Dev skill Problem DCP-1: Big Sum Solution

Problem Link
Dev skill Problem DCP-1: Big Sum Solution

প্রব্লেম টা খুব সহজ । ইনপুট ভালু কে উল্টিয়ে যুগ করতে হবে , তারপর যুগফল কে আবার উল্টাতে হবে ।
উদাহারন - ইনপুট  (১) ৯০০,৯০০ ।
৯০০ কে উল্টালে হয় ০০৯ । তাই তাদের যুগফল হবে ০০৯+০০৯=০১৮। এখন এই যুগফল্ কে উল্টালে হবে ৮১০ ।
তাই আমাদের উত্তর হবে ৮১০ ।

কিন্তু আমরা যদি এইটা কোডে করতে চাই তাহলে ,আমাদের ইনপুট গুলো নিতে হিবে স্ট্রিং এ । কারন ইনপুটের ডিজিট ১০০  টা পর্যন্ত হতে পারে । যদি ১০০ টা ডিজিট  আমরা unsigned long long এ নেই তাও হবে না । তাই আমরা স্ট্রিং এ ইনপুট নিব ।

Solution:
#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    while(cin>>s)
    {
        char s1[110],s2[110];
        int i,f=0,x=0,y=0,temp,c=0;
        for(i=0; i<s.size() ; i++)
        {
            if(s[i]==',') 
                f=1;
            else if(f==0) //কপি s to s1  যতক্ষণ পর্যন্ত কমা না পাবে 
            {
                s1[x++]=s[i];
                
            }
            else  //কপি s to s2  কমা এর পরের অংশ
                s2[y++]=s[i];
        }

        f=0;
        if(x>=y) // এক্স বড় কিংবা সমান হলে ডুকবে
        {
            for(i=0; i<y; i++)
            {
                temp=(int)(s1[i]-'0') + (int)(s2[i]-'0')+c  
                 //s1 ও s2 এর যুগফল ইনটিজার এ কনভার্ট করছি ।   
                // char to int করার নিয়ম দেখতে এখানে ক্লিক করুন
                if(temp==10)              
                {
                    if(f==1)
                        cout<<'0';
                    c=1;

                }
                else if(temp>10)
                {
                    cout<<temp%10;
                    c=1;
                    f=1;
                }
                else
                {
                    cout<<temp;
                    f=1;
                    c=0;
                }
            }
            for(i=y; i<x; i++) //এক্স এর পরের অংশ
            {
                temp=(int)(s1[i]-'0')+c;
                if(temp==10)
                {
                    if(f==1)
                        cout<<'0';
                    c=1;

                }
                else if(temp>10)
                {
                    cout<<temp%10;
                    c=1;
                    f=1;
                }
                else
                {
                    cout<<temp;
                    f=1;
                    c=0;
                }
            }

        }
        else           //একি কাজ করা হইছে , শুধু x এর স্থলে y বসানো হইছে                                
        {
            for(i=0; i<x; i++)
            {
                temp=(int)(s1[i]-'0') + (int)(s2[i]-'0')+c;

                if(temp==10)
                {
                    if(f==1)
                        cout<<'0';
                    c=1;

                }
                else if(temp>10)
                {
                    cout<<temp%10;
                    c=1;
                    f=1;
                }
                else
                {
                    cout<<temp;
                    f=1;
                    c=0;
                }
            }
            for(i=x; i<y; i++)
            {
                temp=(int)(s2[i]-'0')+c;
                if(temp==10)
                {
                    if(f==1)
                        cout<<'0';
                    c=1;

                }
                else if(temp>10)
                {
                    cout<<temp%10;
                    c=1;
                    f=1;
                }
                else
                {
                    cout<<temp;
                    f=1;
                    c=0;
                }
            }
        }

        if(c==1)
            cout<<'1'<<endl;
        else
            cout<<endl;

    }
    return 0;
}

No comments

Theme images by enjoynz. Powered by Blogger.