fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. int binomial(int n, int k){
  5. int **c = new int * [n + 1];
  6. for(int i = 0; i <= n; i++)
  7. c[i] = new int [k + 1];
  8.  
  9. for(int i = 0; i <= n; i++)
  10. for(int j = 0; j <= std::min(i, k); j++)
  11. if(j == 0 || j == i)
  12. c[i][j] = 1;
  13. else
  14. c[i][j] = c[i - 1][j - 1] + c[i - 1][j];
  15.  
  16. int result = c[n][k];
  17. for (int i = 0; i <= n; i++)
  18. delete[] c[i];
  19. delete[] c;
  20. return result;
  21. }
  22.  
  23. int main() {
  24. int n = 0;
  25.  
  26. std::cin >> n;
  27.  
  28. int bin_digits = floor((log(n) / log(2))) + 1;
  29. int sum = 0;
  30.  
  31. for (int i = 1; i <= bin_digits; ++i)
  32. {
  33. sum += binomial (bin_digits, i);
  34. }
  35.  
  36. std::cout << sum;
  37. return 0;
  38. }
Success #stdin #stdout 0s 3416KB
stdin
19
stdout
31