From e3f04e84859b5d5a0351ae7acaa222056ff04ef7 Mon Sep 17 00:00:00 2001 From: j8takagi <j8takagi@nifty.com> Date: Sun, 28 Oct 2012 13:30:32 +0900 Subject: [PATCH] =?utf8?q?fizzbuzz=E5=90=84=E7=A8=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit CãJavaScriptãCASL2ãRubyçã使 --- 0.txt | 100 +++++++++++++++++++++++++++++++++++++++++++++ c/Makefile | 16 ++++++++ c/fizzbuzz.c | 28 +++++++++++++ casl/fizzbuzz.casl | 47 +++++++++++++++++++++ js/fizzbuzz.js | 19 +++++++++ js/index.html | 8 ++++ ruby/fizzbuzz.rb | 15 +++++++ 7 files changed, 233 insertions(+) create mode 100644 0.txt create mode 100644 c/Makefile create mode 100644 c/fizzbuzz.c create mode 100644 casl/fizzbuzz.casl create mode 100644 js/fizzbuzz.js create mode 100644 js/index.html create mode 100755 ruby/fizzbuzz.rb diff --git a/0.txt b/0.txt new file mode 100644 index 0000000..dd96488 --- /dev/null +++ b/0.txt @@ -0,0 +1,100 @@ +1 +2 +Fizz +4 +Buzz +Fizz +7 +8 +Fizz +Buzz +11 +Fizz +13 +14 +FizzBuzz +16 +17 +Fizz +19 +Buzz +Fizz +22 +23 +Fizz +Buzz +26 +Fizz +28 +29 +FizzBuzz +31 +32 +Fizz +34 +Buzz +Fizz +37 +38 +Fizz +Buzz +41 +Fizz +43 +44 +FizzBuzz +46 +47 +Fizz +49 +Buzz +Fizz +52 +53 +Fizz +Buzz +56 +Fizz +58 +59 +FizzBuzz +61 +62 +Fizz +64 +Buzz +Fizz +67 +68 +Fizz +Buzz +71 +Fizz +73 +74 +FizzBuzz +76 +77 +Fizz +79 +Buzz +Fizz +82 +83 +Fizz +Buzz +86 +Fizz +88 +89 +FizzBuzz +91 +92 +Fizz +94 +Buzz +Fizz +97 +98 +Fizz +Buzz diff --git a/c/Makefile b/c/Makefile new file mode 100644 index 0000000..0bcad0e --- /dev/null +++ b/c/Makefile @@ -0,0 +1,16 @@ +CC ?= gcc +CFLAGS ?= -g -Wall -Wextra +RMF ?= rm -f + +COMMONSRC := word.c cmem.c cerr.c +CASL2SRC := struct.c hash.c +ASSRC := assemble.c token.c label.c +EXECSRC := exec.c dump.c + +.PHONY: clean + +fizzubzz: fizzbuzz.c + $(CC) $(CFLAGS) -o fizzbuzz $^ + +clean: + @$(RMF) fizzbuzz diff --git a/c/fizzbuzz.c b/c/fizzbuzz.c new file mode 100644 index 0000000..f54ea80 --- /dev/null +++ b/c/fizzbuzz.c @@ -0,0 +1,28 @@ +#include <stdio.h> + +void puts_fizzbuzz(int n) +{ + int fizz, buzz; + + if ((fizz = (n % 3 == 0))) { + printf("Fizz"); + } + if ((buzz = (n % 5 == 0))) { + printf("Buzz"); + } + if (!fizz && !buzz) { + printf("%d", n); + } + printf("\n"); +} + +int main() +{ + static int max = 100, min = 1; + int i; + + for(i = min; i <= max; i++) { + puts_fizzbuzz(i); + } + return 0; +} diff --git a/casl/fizzbuzz.casl b/casl/fizzbuzz.casl new file mode 100644 index 0000000..261cb5d --- /dev/null +++ b/casl/fizzbuzz.casl @@ -0,0 +1,47 @@ +MAIN START + RPUSH + LD GR1,MIN ; GR1ã«MINãä»£å ¥ +LOOP CALL FIZBUZ ; FIZBUZãå¼ã³åºã + LAD GR1,1,GR1 ; GR1 <- GR1 + 1 + CPL GR1,MAX ; GR1ã¨MAXãæ¯è¼ + JPL FIN ; GR1 > MAX ã®å ´åãFINã¸ã¸ã£ã³ã + JUMP LOOP ; LOOPã¸ã¸ã£ã³ã +FIN RPOP + RET +MIN DC 1 +MAX DC 100 + +;; GR1ã®å¤ã«å¿ãã¦æ¬¡ãåºå +;; 3ã®åæ°: Fizz +;; 5ã®åæ°: Buzz +;; 3ã®åæ°ãã¤5ã®åæ°: FizzBuzz +;; ãã以å¤ã®æ°: æ°å¤ +FIZBUZ START + RPUSH + XOR GR4,GR4 ; GR4: æååã®é·ãããã³ãã©ã° +CHKFIZ LAD GR2,3 ; GR2ã«3ãä»£å ¥ + CALL DIVL ; GR3 <- GR1 % GR2:3 + LD GR3,GR3 ; GR3ã®ãã©ã°å¤ãåå¾ + JNZ CHKBUZ ; GR3ã0ã§ãªãå ´åã3ã®åæ°ã§ã¯ãªãã®ã§ãCHKBUZã¸ã¸ã£ã³ã +SETFIZ LAD GR4,4 ; GR4ã«æååãFizzãã®é·ã4ãä»£å ¥ +CHKBUZ LAD GR2,5 ; GR2ã«5ãä»£å ¥ + CALL DIVL ; GR3 <- GR1 % GR2:5 + LD GR3,GR3 ; GR3ã®ãã©ã°å¤ãåå¾ + JZE SETBUZ ; GR3ã0ã®å ´åã5ã®åæ°ãªã®ã§ãSETBUZã¸ã¸ã£ã³ã + LD GR4,GR4 ; GR4ã®ãã©ã°å¤ãåå¾ + JZE PUTNUM ; GR4ã0ã®å ´åã3ã®åæ°ã§ã5ã®åæ°ã§ããªãã®ã§ãPUTNUMã¸ã¸ã£ã³ã + JUMP SETLEN ; SETLENã¸ã¸ã£ã³ãï¼3ã®åæ°ã§5ã®åæ°ã§ã¯ãªãï¼ +SETBUZ LD GR4,GR4 ; GR4ã®ãã©ã°å¤ãåå¾ + LAD GR4,4,GR4 ; GR4ã«æååãBuzzãã®é·ã4ã追å +SETLEN ST GR4,LEN ; LENã«GR4ã®å¤ãåºå +CHKFB JZE PUTBUZ ; GR4ã0ã®å ´åã3ã®åæ°ã§ã¯ãªãã®ã§ãPUTBUZã¸ã¸ã£ã³ã +PUTFIZ OUT FIZZ,LEN ; ãFizzãã¾ãã¯ãFizzBuzzããåºå + JUMP FIN ; FINã¸ã¸ã£ã³ã +PUTBUZ OUT BUZZ,LEN ; ãBuzzããåºå + JUMP FIN ; FINã¸ã¸ã£ã³ã +PUTNUM CALL OUTA ; GR1ã®æ°å¤ã表示 +FIN RPOP + RET +FIZZ DC 'Fizz' +BUZZ DC 'Buzz' +LEN DS 1 diff --git a/js/fizzbuzz.js b/js/fizzbuzz.js new file mode 100644 index 0000000..b52eb32 --- /dev/null +++ b/js/fizzbuzz.js @@ -0,0 +1,19 @@ +min = 1; +max = 100; + +for(i = min; i <= max; i++) { + fizzbuzz_puts(i); +} + +function fizzbuzz_puts(n) { + if (fizz = (n % 3 == 0)) { + document.write("Fizz"); + } + if (buzz = (n % 5 == 0)) { + document.write("Buzz"); + } + if (!fizz && !buzz) { + document.write(n); + } + document.write("<br />\n"); +} diff --git a/js/index.html b/js/index.html new file mode 100644 index 0000000..9083003 --- /dev/null +++ b/js/index.html @@ -0,0 +1,8 @@ +<!DOCTYPE html> +<html> +<head> +<script type="text/javascript" src="fizzbuzz.js"></script> +</head> +<body> +</body> +</html> diff --git a/ruby/fizzbuzz.rb b/ruby/fizzbuzz.rb new file mode 100755 index 0000000..60ab1b1 --- /dev/null +++ b/ruby/fizzbuzz.rb @@ -0,0 +1,15 @@ +#!/usr/local/bin/ruby + +def puts_fizzbuzz(n) + print "Fizz" if fizz = (n % 3 == 0) + print "Buzz" if buzz = (n % 5 == 0) + print n if not fizz and not buzz + print "\n" +end + +min = 1 +max = 100 + +for i in min..max + puts_fizzbuzz(i) +end -- 2.18.0