Sunday, July 9, 2017

11879 - Multiple of 17 Uva Solution & Logic

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=3001
খুবই সহজ একটা প্রশ্ন , প্রশ্নের কিছু অংশ শুধু শুধু ঝামেলা পাকিয়ে দেয় ,তাই ঐ অংশটুকু পড়ার কোনো দরকার নেই , তবে প্রবলেম-এ যেটা বলেছে ,সেটা হলো - একটি অনেক বড় সংখ্যা আছে ,তোমায় বলতে হবে সেই সংখ্যা'টি ১৭ এর গুণিতক কি না ??? ব্যাস এইটুকুই . কিন্তু , ঝামেলা হইলো - নাম্বার'টি এত্ত বড় যে তুমি সেটা কোনো int variable -এ স্টোর করতে পারবা না ..

তাইলে ,কি করা যেতে পারে ?? হুম, এই জন্য সংখ্যাটিকে string আকারে নিতে হবে .. আর তারপর ,সেই ছোটবেলায় যেভাবে ভাগ করতাম ভাজক ,ভাগশেষ হিসেব কষে - সেইভাবে করতে হবে ,একদম কোডের    নীচে লক্ষ করো  \\
এর মানে যেহেতু , পুরো ভাগ শেষ করে - ভাগশেষ ০ , এর মানে - ১৭৭১৭৪ সংখ্যা'টি ১৭ দিয়ে বিভাজ্য //

 কোড'টি দেখে , তার নিচে ভাগ দেখেই ,একটু মাথা খাটিয়ে বুঝে নাও ,আশা করি বুঝতে পারবে

#include<bits/stdc++.h>

using namespace std;



int main()
{
    string s;
    while(cin>>s)
    {
        if(s[0]=='0'&&s.size()==1)
        {
            break;
        }
        else{
                int n=0;
            for(int i=0;i<s.size();i++)
            {
                n=n*10+(s[i]-'0');
                n=n%17;
            }
            if(n==0)
            {
                cout<<"1"<<endl;
            }
            else{
                cout<<"0"<<endl;
            }
        }
    }
    return 0;
}


বোঝার জন্য একটা ভাগ করে দেখালাম ,কোড দেখে দেখে কিভাবে কাজ হচ্ছে , সেটা বুঝে নাও

                                       ১৭   ।  ১৭৭১৭৪।  ১ ৪ ২ ২
                                                    ১৭
                                                 ----------------
                                                        ৭১
For                                                                               ৬৮
                                                                          -------------------
                                                                                        ৩৭  
                                                                                         ৩৪
                                                                         --------------------    
                                                                                             ৩৪ 
                                                                                               ৩৪
                                                                           --------------------------
                                                                                                   ০

         
           







4 comments:

  1. আপনার নিচে করা ভাগ টি একটু দেখেন আমার কাছে ভুল মনে হচ্ছে
    ১৭৭১৭৪/১৭=১০৪২২ হবার কথা।
    আপনি চেক করে নিয়েন।

    ReplyDelete
    Replies
    1. 0 type korte vule gecen just....

      Delete