Advertisement
Smeany

kakao

Nov 13th, 2019
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. // Double Cola.cpp : Diese Datei enthält die Funktion "main". Hier beginnt und endet die Ausführung des Programms.
  2.  
  3. #include <iostream>
  4.  
  5. unsigned msb(unsigned long k){
  6.     unsigned r = 0;
  7.     while (k >>= 1) {
  8.         r++;
  9.     }
  10.     return r;
  11. }
  12.  
  13. unsigned int first_one(unsigned long long k, unsigned n) {
  14.     unsigned x = (k / n);
  15.     unsigned potenz = msb(x)+1;
  16.     unsigned long long intervall = 0;
  17.     intervall ^= (1llu << potenz);
  18.     intervall--;
  19.     unsigned long long sindex = 0;
  20.     sindex ^= (1llu << potenz);
  21.     sindex *= n;
  22.     sindex -= n;
  23.  
  24.     std::cout << "Input k: " << k << ", bei n: " << n << " vielen Objekten:" << std::endl;
  25.     std::cout << "Intervallgroesse: " << intervall << std::endl;
  26.     std::cout << "Runde: " << potenz << std::endl;
  27.     std::cout << "Sindex: " << sindex << std::endl;
  28.  
  29.     unsigned int pos = 0;
  30.     unsigned long long kaka = k - sindex;
  31.  
  32.     while (k >= sindex + intervall) {
  33.         k -= intervall;
  34.         pos++;
  35.     }
  36.  
  37.     std::cout << "Es muss Position: " << pos << " sein!" << std::endl << std::endl;
  38.     return pos;
  39. }
  40.  
  41. int main()
  42. {
  43.     std::cout << "Hello World!\n";
  44.     unsigned n = 4;
  45.     unsigned long long k = 7230702951;
  46.     //first_one(k, n);
  47.     //first_one(10, 3);
  48.     first_one(10, 3);
  49.     first_one(20, 3);
  50.     first_one(13, 3);
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement