Sunday, August 27, 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
                                                      .......................

এখন তোমাকে Row নাম্বার দেয়া থাকবে , তোমায় সেই Row এর ভেতরে যে তিন'টি সংখ্যা আছে সেটা প্রিন্ট করতে হবে   ।।  তাহলে , ধরো -- যদি দেয়া থাকবে 2 ,তাহলে -    6        5       4, অর্থাৎ - বাম পাশের নাম্বার'টি ( 6 ) ,  Row নাম্বার ( 2 )  এর তিনগুণ  , তাই না  ??   তারপরের ডান দিকের সংখ্যাটি আরো এক কম , আর - তারপরের ডান দিকের সংখ্যাটি আরো এক কম।

                ম্যাথমেটিকালি যেভাবে লিখা যায় ,        (3*n )             (3*n -1)          (3*n-2)

আর যদি  ,  Row নাম্বার বিজোড় হয় ,তাহলে ??    এবার কিন্তু , একটু আলাদা উপরের সিকুয়েন্স দেখেই বুঝতেই পারবে , যাই হোক ------------------

ম্যাথমেটিকালি যেভাবে লিখা যায় ,        (3*n -2)             (3*n -1)          (3*n)   

             একটু , ভেবে দেখো --- আশা করি , বুঝতে পারবে সিকুয়েন্স গুলি । ।


চলো , কোড দেখি এবার  প্রথমে  C++ এর কোড দেখি ,

#include<iostream>

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;

}

এবার  C# ( সি শারপ) এ কোড দেখি ---


using System;

public class Test

{
    public static void Main()
   
    {
       
   

   int t=Convert.ToInt32(Console.ReadLine());

   for(int i=1;i<=t;i++)
   {
        long N=Convert.ToInt64(Console.ReadLine());
         if(N%2==0)
    {
        N=N*3;
        Console.WriteLine("Case #"+i+": "+N+" "+(N-1)+" "+(N-2));
    }
    else
    {
        N=N*3;
        Console.WriteLine("Case #"+i+": "+(N-2)+" "+(N-1)+" "+N);
    }
      
   }

}
}

No comments:

Post a Comment