[プログラミング]つまみ食いした6言語でFizzBuzzと某ナベアツを書いてみる。

 昨年の終わりぐらいから、progeteやpaizaなどのプログラミング学習サイトを回りながら、いくつかのプログラミング言語をつまみ食いをしてました。

 プログラミング言語のつまみ食いを続けたことで、簡単な処理であれいくつかの言語で書けるようになりました。

 今回はプログラミング初心者にとって、書けることでひと区切り(?)になるらしい有名な処理であるFizzBuzzと某ナベアツについて、C#、Java、JavaScript、PHP、Python3、Rubyの6言語でコードを書いてみました。

 今回はメソッド(関数)の扱いに慣れることもあり、それぞれの処理をメソッド(関数)として定義し、その定義したメソッド(関数)を呼び出して実行する形でコードを書いています。

FizzBuzz

 順番に数値を1づつ増やしながら答えていく(但し、3の倍数に該当する場合は「Fizz」、5の倍数に該当する場合は「Buzz」、3の倍数かつ5の倍数に該当する場合は「FizzBuzz」と答える)FizzBuzzという遊びがあります。

 ここでは、6種類のプログラミング言語でFizzBuzzについての処理を書いています。

 1から標準入力された数値nまで、数値を1づつ増加させながら順番に表示させます。ここで、3の倍数の場合は「Fizz」、5の倍数の場合は「Buzz」、3の倍数かつ5の倍数(すなわち15の倍数)の場合は「FizzBuzz」が、数値の代わりに表示されるようになってます。

C#でFizzBuzz
using System;
public class Sample{
    public static void fizzbuzz(int x){
        for (int i = 1; i <= x; i++){
            if (i % 5 == 0 && i % 3 == 0){
                Console.WriteLine("FizzBuzz");
            } else if (i % 5 == 0){
                Console.WriteLine("Buzz");
            } else if (i % 3 == 0){
                Console.WriteLine("Fizz");
            } else {
                Console.WriteLine(i);               
            }
        }
    }
    
    public static void Main(){
        int n = int.Parse(Console.ReadLine().Trim());
        fizzbuzz(n);
    }
}
JavaでFizzBuzz
import java.util.*;

public class Main {
    public static void fizzbuzz(int x) {
        for (int i=1;i<=x;i++){
            if (i % 5 == 0 && i % 3 == 0){
                System.out.println("FizzBuzz");
            } else if (i % 5 == 0){
                System.out.println("Buzz");
            } else if (i % 3 == 0){
                System.out.println("Fizz");
            } else {
                System.out.println(i);               
            }
        }
    }
    
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        int n = Integer.parseInt(line);
        fizzbuzz(n);
    }
}
JavaScriptでFizzBuzz
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
    function fizzbuzz(x){
        for (let i=1;i<=x;i++){
            if (i % 5 === 0 && i % 3 === 0){
                console.log("FizzBuzz");
            } else if (i % 5 === 0){
                console.log("Buzz");
            } else if (i % 3 === 0){
                console.log("Fizz");
            } else {
                console.log(i);            
            }
        }
    }
    var n=parseInt(lines[0]);
    fizzbuzz(n);
});
PHPでFizzBuzz
<?php
function fizzbuzz($x){
    for($i=1;$i<=$x;$i++){
        if ($i % 5 == 0 && $i % 3 == 0){
            echo ("FizzBuzz"."\n");
        } elseif ($i % 5 == 0){
            echo ("Buzz"."\n");
        } elseif ($i % 3 == 0){
            echo ("Fizz"."\n");
        } else {
            echo ($i."\n");            
        }
    }
}

$n = (int)fgets(STDIN);
fizzbuzz($n);
?>
Python3でFizzBuzz
def fizzbuzz(x):
    for i in range(1,x+1):
        if i % 5 == 0 and i % 3 == 0:
            print("FizzBuzz")
        elif i % 5 == 0:
            print("Buzz")
        elif i % 3 == 0:
            print("Fizz")
        else:
            print(i)

n=int(input())
fizzbuzz(n)
RubyでFizzBuzz
def fizzbuzz(x)
    for i in 1..x
        if i % 5 == 0 && i % 3 == 0
            puts "FizzBuzz"
        elsif i % 5 == 0
            puts "Buzz"
        elsif i % 3 == 0
            puts "Fizz"
        else
            puts i
        end
    end
end

n=gets.to_i
fizzbuzz(n)

某ナベアツ

 某芸人の有名な持ちネタをプログラミングで処理したものです。順番に1つづつ数字を増やして表示させます。ここで、3の倍数、もしくは3が含まれる数字の場合は、数字の代わりに指定文字列を表示させます。今回は☆を表示させます。

 3が含まれるかどうかの判定については、桁が多くなっても対応できるように、数字を文字列に変換し、3という文字が文字列中に含まれるかどうかで判定しています。

C#でナベアツ
using System;
using System.Collections.Generic;
public class Hello{
    public static void nabe3(int x){
        for (int i = 1; i <= x; i++){
            if (i % 3 == 0 || i.ToString().Contains("3")==true){
                Console.WriteLine("☆");
            } else {
                Console.WriteLine(i);               
            }
        }
    }
    
    public static void Main(){
        // Your code here!
        var n = int.Parse(Console.ReadLine().Trim());
        nabe3(n);
    }
}
Javaでナベアツ
import java.util.*;

public class Main {
    private static void nabe3(int x) {
        for (int i=1;i<=x;i++){
            if (i % 3 == 0 || Integer.toString(i).contains("3")==true){
                System.out.println("☆");
            } else {
                System.out.println(i);               
            }
        }
    }
    
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        String line = sc.nextLine();
        int n = Integer.parseInt(line);
        nabe3(n);
    }
}
JavaScriptでナベアツ
process.stdin.resume();
process.stdin.setEncoding('utf8');

var lines = [];
var reader = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
});
reader.on('line', (line) => {
  lines.push(line);
});
reader.on('close', () => {
    function nabe3(x){
        for (let i=1;i<=x;i++){
            if (i % 3 === 0 || i.toString().includes("3")===true){
                console.log("☆");
            } else {
                console.log(i);            
            }
        }
    }
    var n=parseInt(lines[0]);
    nabe3(n);
});
PHPでナベアツ
<?php
function nabe3($x){
    for($i=1;$i<=$x;$i++){
        if ($i % 3 === 0 || strpos((string)$i,"3")!==false){
            echo ("☆"."\n");
        } else {
            echo ($i."\n");            
        }
    }
}

$n = (int)fgets(STDIN);
nabe3($n);
?>
Python3でナベアツ
def nabe3(x):
    for i in range(1,x+1):
        if i % 3 == 0 or str(i).count("3")>0:
            print("☆")
        else:
            print(i)

n=int(input().rstrip())
nabe3(n)
Rubyでナベアツ
def nabe3(x)
    for i in 1..x
        if i % 3==0 || i.to_s.count("3")>0
            puts"☆"
        else
            puts i
        end
    end
end

n=gets.to_i
nabe3(n)

 今回は、C#、Java、JavaScript、PHP、Python、Rubyの6言語でFizzBuzzと某ナベアツの処理について書きました。この6つの言語については、一応は簡単な処理までは書けるようになりました。

 あまり多くの言語に手を出すと収拾が付かなくなりそうなので、プログラミング言語のつまみ食いはこの辺で止めておきます。それと同時に、何らかの「モノ」(ゲーム、アクセスカウンター、掲示板など)を作る準備をそろそろ始めたいです。

にほんブログ村 ゲームブログへ

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする