各言語の比較
C言語
#include <stdio.h>
int gcd(int a, int b);
int main(void) {
// Hello, world!と表示する
printf("Hello, world!\n");
// 入力を受け取ってその段数'*'の山を表示する
int num;
printf("num: ");
scanf("%d", &num);
for (int i = 0; i < num; i++) {
for (int j = 0; j <= i; j++) {
printf("*");
}
printf("\n");
}
// aとbの最大公約数を求める
int a, b;
printf("a: ");
scanf("%d", &a);
printf("b: ");
scanf("%d", &b);
printf("gcd(a, b) = %d\n", gcd(a, b));
return 0;
}
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
Python
# Hello, world!と表示する
print('Hello, world')
# 入力を受け取ってその段数'*'の山を表示する
num = int(input('num: '))
for i in range(num):
for _ in range(i+1):
print('*', end='')
print('')
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
# aとbの最大公約数を求める
a = int(input('a: '))
b = int(input('b: '))
print(f'gcd(a, b) = {gcd(a, b)}')
Java
import java.util.Scanner;
class Program {
public static void main(String[] args) {
// Hello, world!と表示する
System.out.println("Hello, world!");
// 入力を受け取ってその段数'*'の山を表示する
Scanner scan = new Scanner(System.in);
System.out.print("num: ");
int num = scan.nextInt();
for (int i = 0; i < num; i++) {
for (int j = 0; j <= i; j++) {
System.out.print('*');
}
System.out.print('\n');
}
// aとbの最大公約数を求める
System.out.print("a: ");
int a = scan.nextInt();
System.out.print("b: ");
int b = scan.nextInt();
System.out.println("gcd(a, b) = " + Integer.toString(gcd(a, b)));
scan.close();
}
public static int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
}
PHP
<?php
// Hello, world!と表示する
echo 'Hello, world!', "\n";
// 入力を受け取ってその段数'*'の山を表示する
echo 'num: ';
$num = intval(trim(fgets(STDIN)));
for ($i = 0; $i < $num; $i++) {
for ($j = 0; $j <= $i; $j++) {
echo '*';
}
echo "\n";
}
function gcd($a, $b)
{
if ($b == 0) return $a;
return gcd($b, $a % $b);
}
echo 'a: ';
$a = intval(trim(fgets(STDIN)));
echo 'b: ';
$b = intval(trim(fgets(STDIN)));
echo 'gcd(a, b) = ', gcd($a, $b), "\n";
?>
Rust
use std::io;
use std::io::Write;
fn main() {
// Hello, world!と表示する
println!("Hello, world!");
// 入力を受け取ってその段数'*'を表示する
let mut input = String::new();
print!("num: ");
io::stdout().flush().unwrap();
io::stdin()
.read_line(&mut input)
.unwrap();
let num: u32 = input.trim().parse().unwrap();
input.clear();
for i in 0..num {
for _ in 0..=i {
print!("*");
}
print!("\n");
}
// aとbの最大公約数を求める
print!("a: ");
io::stdout().flush().unwrap();
io::stdin()
.read_line(&mut input)
.unwrap();
let a: u32 = input.trim().parse().unwrap();
input.clear();
print!("b: ");
io::stdout().flush().unwrap();
io::stdin()
.read_line(&mut input)
.unwrap();
let b: u32 = input.trim().parse().unwrap();
println!("gcd(a, b) = {}", gcd(a, b));
}
fn gcd(a: u32, b: u32) -> u32 {
if b == 0 {
a
} else {
gcd(b, a % b)
}
}
参考文献
以下の記事を参考にシンタックスハイライトを作成しました。