「=」を使わずにFizzBuzzを書く
「=」を使わずにFizzBuzzを書きたい
特に意味はない
20までのFizzBuzzを「=」を使わずにいろんな言語で書いてみよう
C言語
c_fizzbuzz.c
#include <stdio.h>
int main(void) {
int n;
n++;
while (1) {
if (n%3 && n%5) {
printf("%d", n);
}
else{
if (!(n%3)) {
printf("Fizz");
}
if (!(n%5)) {
printf("Buzz");
}
}
printf("\n");
n++;
if (n>20) {
break;
}
}
return 0;
}
c_fizzbuzz.c
#include <stdio.h>
int main(void) {
int n;
n++;
while (1) {
if (n%3 && n%5) {
printf("%d", n);
}
else{
if (!(n%3)) {
printf("Fizz");
}
if (!(n%5)) {
printf("Buzz");
}
}
printf("\n");
n++;
if (n>20) {
break;
}
}
return 0;
}
初期化しないと0が入るのを利用(ただしコンパイラによる)
0がFalse、それ以外がTrueになる性質を使って条件分岐する
Python
python_fizzbuzz.py
def fizzbuzz(n):
if n%3 and n%5:
return n
else:
if not n%3 and not n%5:
return "FizzBuzz"
elif not n%3:
return "Fizz"
elif not n%5:
return "Buzz"
for x in list(map(fizzbuzz, range(1,21))):
print(x)
python_fizzbuzz.py
def fizzbuzz(n):
if n%3 and n%5:
return n
else:
if not n%3 and not n%5:
return "FizzBuzz"
elif not n%3:
return "Fizz"
elif not n%5:
return "Buzz"
for x in list(map(fizzbuzz, range(1,21))):
print(x)
Pythonはインクリメントがないため
rangeで整数のリストを作成
mapで一気すべてに関数を掛ける方式に
地味に
print("hoge", end="")
が使えないのでつらかった
Java
java_fizzbuzz.java
class java_fizzbuzz {
static int n;
public static void main(String[] args) {
n++;
while(true){
if (!String.valueOf(n%3).equals("0") && !String.valueOf(n%5).equals("0")) {
System.out.print(n);
}
else{
if (String.valueOf(n%3).equals("0")) {
System.out.print("Fizz");
}
if (String.valueOf(n%5).equals("0")) {
System.out.print("Buzz");
}
}
System.out.println();
n++;
if (n>20) {
break;
}
}
}
}
java_fizzbuzz.java
class java_fizzbuzz {
static int n;
public static void main(String[] args) {
n++;
while(true){
if (!String.valueOf(n%3).equals("0") && !String.valueOf(n%5).equals("0")) {
System.out.print(n);
}
else{
if (String.valueOf(n%3).equals("0")) {
System.out.print("Fizz");
}
if (String.valueOf(n%5).equals("0")) {
System.out.print("Buzz");
}
}
System.out.println();
n++;
if (n>20) {
break;
}
}
}
}
クラスのメンバ変数は0で初期化されることを利用
Booleanが0 or その他で処理していないことが判明
一旦Stringに変換してequalsで比較することでイコールを使わずに済んだ
まとめ
どうしても「=」を使いたくないときに参考にしてください
なお変数は明示的に初期化するようにしましょう
もっといい書き方がある!
この言語ではこうできる!
等ありましたらコメントへお願いします
Author And Source
この問題について(「=」を使わずにFizzBuzzを書く), 我々は、より多くの情報をここで見つけました https://qiita.com/Nipper1357/items/86a594af41d7ab190653著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .