fork download
  1. #include <iostream>
  2. using namespace std;
  3. long clp2(long x) {
  4. //Ищет и возвращает ближайшую к x сверху степень двойки
  5. //Вообще говоря, предполагает, что число 32-разрядное
  6. x--;
  7. for (int p=1; p<32; p<<=1) x |= (x >> p);
  8. return ++x;
  9. }
  10.  
  11. int main () {
  12. long x;
  13. cout << "x=";
  14. cin >> x;
  15. cout << clp2(x);
  16. return 0;
  17. }
  18.  
  19.  
Success #stdin #stdout 0s 4324KB
stdin
100000
stdout
x=131072