Monday, October 26, 2015

UVa 10940 - Throwing cards away II

// UVa 10940 - Throwing cards away II

#include <iostream>
#include <cmath>
using namespace std;

#define integer unsigned long long int

int main() {
	integer power[30];
	power[0] = 1;
	for (int i = 1; i < 30; i++)
		power[i] = power[i - 1] << 1;
	integer n;
	while (cin >> n && n) {
		integer ex = (integer) ceil(log(n) / log(2));
		integer pw = power[ex];
		integer sol = pw - ((pw - n) << 1);
		cout << sol << endl;
	}
	return 0;
}

No comments:

Post a Comment