Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Double Cola.cpp : Diese Datei enthält die Funktion "main". Hier beginnt und endet die Ausführung des Programms.
- #include <iostream>
- unsigned msb(unsigned long k){
- unsigned r = 0;
- while (k >>= 1) {
- r++;
- }
- return r;
- }
- unsigned int first_one(unsigned long long k, unsigned n) {
- unsigned x = (k / n);
- unsigned potenz = msb(x)+1;
- unsigned long long intervall = 0;
- intervall ^= (1llu << potenz);
- intervall--;
- unsigned long long sindex = 0;
- sindex ^= (1llu << potenz);
- sindex *= n;
- sindex -= n;
- std::cout << "Input k: " << k << ", bei n: " << n << " vielen Objekten:" << std::endl;
- std::cout << "Intervallgroesse: " << intervall << std::endl;
- std::cout << "Runde: " << potenz << std::endl;
- std::cout << "Sindex: " << sindex << std::endl;
- unsigned int pos = 0;
- unsigned long long kaka = k - sindex;
- while (k >= sindex + intervall) {
- k -= intervall;
- pos++;
- }
- std::cout << "Es muss Position: " << pos << " sein!" << std::endl << std::endl;
- return pos;
- }
- int main()
- {
- std::cout << "Hello World!\n";
- unsigned n = 4;
- unsigned long long k = 7230702951;
- //first_one(k, n);
- //first_one(10, 3);
- first_one(10, 3);
- first_one(20, 3);
- first_one(13, 3);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement