Friday, July 14, 2017

DCP-74: Mobile Key Devskill Problem Solution & Logic

https://www.devskill.com/CodingProblems/ViewProblem/74

খুবই সহজ একটা প্রোবলেম , ১ থেকে ১ করে বাড়তে থাকবে , কিন্তু - প্রতি লাইনে , মাত্র ৩ টি করে সংখ্যা থাকবে , নীচে ধারাটি দেখালাম

                                       1   2  3
                                       6   5  4
                                       7   8  9
                                       12  11 10
                                       13  14 15
                                       and so on...
 
 এখানে তোমায় N এর মান , দেয়া থাকবে - তোমায় তত তম লাইনের ৩ টা মান প্রিন্ট করতে হবে । 
কি মনে হচ্ছে ?? লুপ খাটালেই তো হয় , তাই না ?? আসলে কি , লুপ খাটানো কি খুব জরুরী ?? 
উত্তর হবে - না । কারণ , কততম লাইনের মান , বের করবা ?? তত তম লাইনকে , ৩ দিয়ে গুণ দিলেই 
সেই লাইনের বড় মান'টি পেয়ে যাবা - তারপর সেখান থেকে , ১ কমিয়ে ২ কমিয়ে মান দুইটি প্রিন্ট করবা ।
বিজোড় নাম্বার লাইন হলে , ছোট মান'টি আগে - তারপর আসতে আসতে বড় মান ও জোড় নাম্বার লাইন হলে, 
বড়ো মান'টি আগে , তারপর ১ করে কমাতে কমাতে ছোট মান । 

যেমন,  N = 4 দেয়া আছে , তাহলে - মানগুলি হলো , (3*4)12    (3*4 -1)11   (3*4 - 2)10
খুবই সহজ , তাই না ?? চলো , কোড দেখি -----

#include<iostream>
// Nayeem Mollick Joy,Applied Physics &Electronic Engineering,University of Rajshahi.

using namespace std;

void pattern(unsigned long long int N)
{
    if(N%2==0)
    {
        N=N*3;
        cout<<" "<<N<<" "<<N-1<<" "<<N-2<<endl;
    }
    else
    {
        N=N*3;
        cout<<" "<<N-2<<" "<<N-1<<" "<<N<<endl;
    }
}

int main()

{
   int t;

   cin>>t;

   unsigned long long int N;

   for(int i=1;i<=t;i++)
   {
       cin>>N;
       cout<<"Case #"<<i<<":";
       pattern(N);
   }

   return 0;

}

No comments:

Post a Comment