どうしてプログラマに・・・プログラムが書けないのか?にあるFizzBuzz問題を解くプログラム。
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。
#runtime "hsp3cl"
repeat 100, 1
if (cnt \ 3) {
if (cnt \ 5) { mes cnt } else { mes "Buzz" }
} else {
if (cnt \ 5) { mes "Fizz" } else { mes "FizzBuzz" }
}
loop
stop
特に利点はないけど別解その1。
#runtime "hsp3cl"
repeat 100, 1
s = ""
if (cnt \ 3 == 0) : s = "Fizz"
if (cnt \ 5 == 0) : s += "Buzz"
if (s == "") : mes cnt : else : mes s
loop
stop
別解その2。if文を一切使わない方法。
#runtime "hsp3cl"
s = "", "Fizz", "Buzz", "FizzBuzz"
repeat 100, 1
s(0) = str(cnt)
mes s((cnt \ 3 == 0) + (cnt \ 5 == 0) * 2)
loop
stop
0 件のコメント:
コメントを投稿