// 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 = 10000;
// 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;
}
Ly8gQ2FsbCBvZiBEdXR5IFpvbWJpZXMgSW5zdGEtS2lsbCBSb3VuZCBDYWxjdWxhdG9yCi8vIGF1dGhvcjogUi5CLiAoUmVkZGl0OiBEZWFkV2lyZUFpbnRUaGF0QmFkLCBZb3VUdWJlOiBSZWQgQmFyb24gMTgxKQoKI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKSB7CgkKCS8vIGludCBpcyAzMi1iaXQgc2lnbmVkLCB3aGljaCBpcyB0aGUgZGF0YSB0eXBlIHVzZWQgZm9yIGhlYWx0aCBpbiBpZCBUZWNoIDMKCS8vIHJvdW5kIDEgaGVhbHRoIGlzIDE1MAoJaW50IGhlYWx0aCA9IDE1MDsKCQoJLy8gcm91bmQgbGltaXQsIHRoaXMgY29uc3RhbnQgaXMgdXNlZCBvbmx5IHRvIHByZXZlbnQgYW4gaW5maW5pdGUgbG9vcAoJY29uc3QgaW50IHJsaW1pdCA9IDEwMDAwOwoJCgkvLyBoZWFsdGggaW5jcmVhc2VzIGJ5ICsxMDAgZXZlcnkgcm91bmQgZnJvbSAyIHVudGlsIDkKCWZvcihpbnQgcm5kID0gMjsgcm5kIDw9IDk7IHJuZCsrKQoJCWhlYWx0aCArPSAxMDA7CgkKCS8vIGhlYWx0aCBpbmNyZWFzZXMgYnkgeDEuMSBldmVyeSByb3VuZCBmcm9tIDEwIG9ud2FyZHMKCWZvcihpbnQgcm5kID0gMTA7IHJuZCA8PSBybGltaXQ7IHJuZCsrKSB7CgkJCgkJLy8gdGhpcyBleHByZXNzaW9uIGlzIHVzZWQgdG8gYXZvaWQgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYwoJCS8vIHggKyB4LzEwID0geCArIDAuMXggPSAxLjF4CgkJaGVhbHRoICs9IGhlYWx0aCAvIDEwOwoJCQoJCS8vIGlmIGhlYWx0aCBvdmVyZmxvd3MgdG8gbmVnYXRpdmUsIGl0J3MgYW4gaW5zdGEta2lsbCByb3VuZAoJCS8vIHN0ZDo6Y291dCBvdXRwdXRzIHRoZSByb3VuZCBudW1iZXIgdG8gc3Rkb3V0CgkJaWYoaGVhbHRoIDwgMCkKCQkJc3RkOjpjb3V0IDw8IHJuZCA8PCAnXG4nOwoJCQkKCX0KCQoJLy8gZXhpdCBwcm9ncmFtCglyZXR1cm4gMDsKCQp9Cg==