diff options
Diffstat (limited to 'other/bulb_switcher.cpp')
-rw-r--r-- | other/bulb_switcher.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/other/bulb_switcher.cpp b/other/bulb_switcher.cpp new file mode 100644 index 0000000..9fd9374 --- /dev/null +++ b/other/bulb_switcher.cpp @@ -0,0 +1,19 @@ +// 319. Bulb Switcher +#include <math.h> +#include <stdio.h> + +/* + * there are 'n' light bulbs that are initially off. you first turn on all the + * bulbs, then you turn off every second bulb. on the third round, you toggle + * every third bulb (turning on if it is off or vice-versa). for the i'th round, + * you toggle every 'i' bulb for the n'th round, you only toggle the last bulb. + * return the number that on after 'n' + */ + +int bulbSwitch(int n) { return sqrt(n); } + +int main() { + printf("%d\n", bulbSwitch(3)); // expect: 1 + printf("%d\n", bulbSwitch(0)); // expect: 0 + printf("%d\n", bulbSwitch(1)); // expect: 1 +} |