Iamtui1010

dembit1(2).cpp

Mar 8th, 2022
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     long long n;
  8.     cin >> n;
  9.     if (n == 1) cout << 1;
  10.     else
  11.     {
  12.         long long count = 1;
  13.         int i = 1;
  14.         long long sum = n - 1;
  15.         while (sum - (long long)pow(2, i) > 0)
  16.         {
  17.             sum -= (long long)pow(2, i);
  18.             i++;
  19.         }
  20.         for (int j = i - 1; j >= 1; j--)
  21.             count += pow(2, j) + j * pow(2, j) / 2;
  22.         if (sum == 0) cout << count;
  23.         else
  24.         {
  25.             count += (long long)sum / 2 + sum;
  26.             for (int j = i; j >= 2; j--)
  27.             {
  28.                 count += (long long)(sum / pow(2, j)) * (long long)pow(2, j - 1);
  29.                 if ((sum % (long long)pow(2, j)) > (long long)pow(2, j - 1))
  30.                 {
  31.                     count += (long long)(sum % (long long)pow(2, j - 1));
  32.                 }
  33.             }
  34.             cout << count;
  35.         }
  36.     }
  37.  
  38.     return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment