aboutsummaryrefslogtreecommitdiff
path: root/other/bulb_switcher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/bulb_switcher.cpp')
-rw-r--r--other/bulb_switcher.cpp19
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
+}