Saturday, August 19, 2017

486A. Calculating Function Codeforces Problem Solution In (C++,C#) & Logic

http://codeforces.com/problemset/problem/486/A

খুবই সহজ একটা সমস্যা ---

f(n) =  - 1 + 2 - 3 + .. + ( - 1)n

তোমায়  একটা  ধারা  ফলো  করতে হবে , সেখানে   জোড় সংখ্যা  গুলোর আগে  প্লাস চিহ্ন ও  বিজোড় সংখ্যাগুলির আগে   মাইনাস চিহ্ন  থাকবে  । ।  

একটা  ধারা  লিখেই ফেলি  যেমন  -----

 -1 + 2 -3 +4 -5 + 6 -7 +8 -9 .................................

  4  অবদি  , যোগফল  =  2      ,                           5  অবদি  , যোগফল  =  -3 
 6  অবদি  , যোগফল  =  3      ,                            7 অবদি  , যোগফল  =  -4
 8   অবদি  , যোগফল  = 4  অরথাত,  n/2      ,      9  অবদি  , যোগফল  =  -5  অর্থাৎ ,  - (n+1)/2
 
  এর মানে  , জোড় এর  ক্ষেত্রে   উত্তরগুলি  বরাবরই   অর্ধেক  হচ্ছে  দেয়া মান এর  , আর  বিজোড়  এর  ক্ষেত্রে  হচ্ছে      - (n+1)/2   ।   সো  , আমরা  কিন্তু   সুত্র  বের করে ফেলেছি  , এখন  আমরা   চলো  কোড লিখে  ফেলি    

IN C++ LANGUAGE.....................
 
#include<iostream> 
 #include<cstdio>

using namespace std;

int main(){

    long long n; 
 cin >> n;

    if(n % 2 == 0)cout << n/2 << endl; 
 else cout << -(n+1)/2 << endl; 
 return 0; 
 }

IN C# LANGUAGE.......................

using System; 

 class Exercise11 


   
     static void Main()
    
     {
        
     long n =Convert.ToInt64(Console.ReadLine());    

    if(n % 2 == 0) Console.WriteLine(n/2);

   else Console.WriteLine((-(n+1)/2));
        
     }
   

}  

No comments:

Post a Comment