// Call of Duty Zombies Insta-Kill Round Calculator
// author: R.B. (Reddit: DeadWireAintThatBad, YouTube: Red Baron 181)
#include <iostream>
int main() {
// int is 32-bit signed, which is the data type used for health in id Tech 3
// round 1 health is 150
int health = 150;
// round limit, this constant is used only to prevent an infinite loop
const int rlimit = 1000;
// health increases by +100 every round from 2 until 9
for(int rnd = 2; rnd <= 9; rnd++)
health += 100;
// health increases by x1.1 every round from 10 onwards
for(int rnd = 10; rnd <= rlimit; rnd++) {
// this expression is used to avoid floating-point arithmetic
// x + x/10 = x + 0.1x = 1.1x
health += health / 10;
// if health overflows to negative, it's an insta-kill round
// std::cout outputs the round number to stdout
if(health < 0)
std::cout << rnd << '\n';
}
// exit program
return 0;
}
Ly8gQ2FsbCBvZiBEdXR5IFpvbWJpZXMgSW5zdGEtS2lsbCBSb3VuZCBDYWxjdWxhdG9yCi8vIGF1dGhvcjogUi5CLiAoUmVkZGl0OiBEZWFkV2lyZUFpbnRUaGF0QmFkLCBZb3VUdWJlOiBSZWQgQmFyb24gMTgxKQoKI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKSB7CgkKCS8vIGludCBpcyAzMi1iaXQgc2lnbmVkLCB3aGljaCBpcyB0aGUgZGF0YSB0eXBlIHVzZWQgZm9yIGhlYWx0aCBpbiBpZCBUZWNoIDMKCS8vIHJvdW5kIDEgaGVhbHRoIGlzIDE1MAoJaW50IGhlYWx0aCA9IDE1MDsKCQoJLy8gcm91bmQgbGltaXQsIHRoaXMgY29uc3RhbnQgaXMgdXNlZCBvbmx5IHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcAoJY29uc3QgaW50IHJsaW1pdCA9IDEwMDA7CgkKCS8vIGhlYWx0aCBpbmNyZWFzZXMgYnkgKzEwMCBldmVyeSByb3VuZCBmcm9tIDIgdW50aWwgOQoJZm9yKGludCBybmQgPSAyOyBybmQgPD0gOTsgcm5kKyspCgkJaGVhbHRoICs9IDEwMDsKCQoJLy8gaGVhbHRoIGluY3JlYXNlcyBieSB4MS4xIGV2ZXJ5IHJvdW5kIGZyb20gMTAgb253YXJkcwoJZm9yKGludCBybmQgPSAxMDsgcm5kIDw9IHJsaW1pdDsgcm5kKyspIHsKCQkKCQkvLyB0aGlzIGV4cHJlc3Npb24gaXMgdXNlZCB0byBhdm9pZCBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljCgkJLy8geCArIHgvMTAgPSB4ICsgMC4xeCA9IDEuMXgKCQloZWFsdGggKz0gaGVhbHRoIC8gMTA7CgkJCgkJLy8gaWYgaGVhbHRoIG92ZXJmbG93cyB0byBuZWdhdGl2ZSwgaXQncyBhbiBpbnN0YS1raWxsIHJvdW5kCgkJLy8gc3RkOjpjb3V0IG91dHB1dHMgdGhlIHJvdW5kIG51bWJlciB0byBzdGRvdXQKCQlpZihoZWFsdGggPCAwKQoJCQlzdGQ6OmNvdXQgPDwgcm5kIDw8ICdcbic7CgkJCQoJfQoJCgkvLyBleGl0IHByb2dyYW0KCXJldHVybiAwOwoJCn0K