Číslo Carol

Číslo Carol
Zkuste to na GfG Practice #practiceLinkDiv { display: none !important; }

Carol number je celé číslo ve tvaru 4 n - 2 (n+1) - 1. Ekvivalentní vzorec je (2 n -1) 2 - 2.
Zajímavá nemovitost: 
Pro n > 2 je binární reprezentace n-tého čísla Carol n-2 po sobě jdoucích, jedna nula uprostřed a n + 1 další po sobě jdoucí. Příklad n = 4 číslo koledy je 223 a binární číslo 223 je 11011111 zde n-2 = 4-2 = 2 po sobě jdoucí počínaje pak jednou 0 uprostřed a pak n + 1 = 4 + 1 = 5 po sobě jdoucích.
Je-li dané číslo n, úkolem je najít n-té číslo Carol. Prvních pár čísel koled je -1 7 47 223 959... atd.

Příklady:  

Input : n = 2 Output: 7 Input : n = 4 Output: 223 
Recommended Practice Kolední čísla Zkuste to! C++
   // C++ program to find n'th Carol number   #include          using     namespace     std  ;   // Function to find n'th carol number   int     carol  (  int     n  )   {      int     result     =     pow  (  2       n  )     -     1  ;      return     result     *     result     -     2  ;   }   // Driver program to ru the case   int     main  ()   {      int     n     =     4  ;      cout      < <     carol  (  n  );      return     0  ;   }   
Python3
   # Python program to find n'th Carol number   def   carol  (  n  ):   # a**b is a ^ b in python   result   =   (  2  **  n  )   -   1   return   result   *   result   -   2   # driver program to run the case   n   =   4   print   (  carol  (  n  ))   
Java
   /* Java program to find n'th Carol number */   class   GFG     {      static     int     carol  (  int     n  )      {      double     tmp     =     Math  .  pow  (  2       n  )     -     1  ;      return     (  int  )  tmp  ;      }      public     static     void     main  (  String  []     args  )      {      int     n     =     4  ;      System  .  out  .  println  (  carol  (  n  ));      }   }   
C#
   /* C# program to find n'th Carol number */   using     System  ;   class     GFG     {      static     int     carol  (  int     n  )      {      int     result     =     (  int  )  Math  .  Pow  (  2       n  )     -     1  ;      return     result     *     result     -     2  ;      }      // Driver code      public     static     void     Main  ()      {      int     n     =     4  ;      Console  .  WriteLine  (  carol  (  n  ));      }   }   // This code is contributed by vt_m.   
PHP
      // PHP program to find   // n'th Carol number   // Function to find   // n'th carol number   function   carol  (  $n  )   {   $result   =   pow  (  2     $n  )   -   1  ;   return   $result   *   $result   -   2  ;   }   // Driver Code   $n   =   4  ;   echo   carol  (  $n  );   // This code is contributed by ajit   ?>   
JavaScript
    <  script  >      /* Javascript program to find n'th Carol number */          function     carol  (  n  )      {      let     result     =     Math  .  pow  (  2       n  )     -     1  ;      return     result     *     result     -     2  ;      }          let     n     =     4  ;      document  .  write  (  carol  (  n  ));        <  /script>   

výstup:  

223 

Časově složitý y: O(log n) pro funkci pow

Pomocný prostor: O(1)