割算を使わないプログラムを追加
[fizzbuzz.git] / c / fizzbuzz2.c
diff --git a/c/fizzbuzz2.c b/c/fizzbuzz2.c
new file mode 100644 (file)
index 0000000..8a511f9
--- /dev/null
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <assert.h>
+enum {
+    MIN = 1,
+    MAX = 100,
+    FIZZNUM = 3,
+    BUZZNUM = 5,
+};
+
+int main()
+{
+    assert(MIN <= FIZZNUM && MIN <= BUZZNUM);
+    int i, fizz, buzz;
+
+    for(i = fizz = buzz = MIN; i <= MAX; i++, fizz++, buzz++) {
+        fizz = (fizz == FIZZNUM) ? 0 : fizz;
+        buzz = (buzz == BUZZNUM) ? 0 : buzz;
+        if(fizz == 0 && buzz == 0) {
+            puts("FizzBuzz");
+        } else if(fizz == 0) {
+            puts("Fizz");
+        } else if(buzz == 0) {
+            puts("Buzz");
+        } else {
+            printf("%d\n", i);
+        }
+    }
+    return 0;
+}