home > さまざまな言語で数値計算 > 手続き型プログラミングの基本 >

さまざまな言語で数値計算

Only Do What Only You Can Do

100未満の3の倍数の和

VBScript

Option Explicit

Dim sum: sum = 0
Dim i
For i = 1 To 99
    If i Mod 3 = 0 Then
        sum = sum + i
    End If
Next
WScript.Echo sum
Z:\>cscript //nologo 0105.vbs
1683

JScript

var sum = 0;
for (var i = 1; i < 100; i++) {
    if (i % 3 == 0) {
        sum += i;
    }
}
WScript.Echo(sum);
Z:\>cscript //nologo 0105.js
1683

PowerShell

$sum = 0
foreach ($i in 1..99)
{
    if ($i % 3 -eq 0)
    {
        $sum += $i
    }
}
Write-Host $sum

$sum = 0
foreach ($i in 1..99)
{
    $sum += if ($i % 3 -eq 0) {$i} else {0}
}
Write-Host $sum
Z:\>powershell -file 0105.ps1
1683
1683

Perl

use strict;
use warnings;

my $sum = 0;
for (1..99)
{
    if ($_ % 3 == 0)
    {
        $sum += $_;
    }
}
print "$sum\n";
Z:\>perl 0105.pl
1683

PHP

<?php
error_reporting(E_NOTICE);

$sum = 0;
foreach (range(1, 99) as $i)
{
    if ($i % 3 == 0)
    {
        $sum += $i;
    }
}
echo "$sum\n";
?>
Z:\>php 0105.php
1683

Python

sum = 0
for i in range(1, 100):
    if i % 3 == 0:
        sum += i
print sum

sum = 0
for i in range(1, 100):
    sum += i if i % 3 == 0 else 0
print sum
Z:\>python 0105.py
1683
1683

Ruby

sum = 0
(1..99).each do |i|
    if i % 3 == 0
        sum += i
    end
end
puts sum
Z:\>ruby 0105.rb
1683

Groovy

Pascal

Program Pas0105(arg);
var
    i:integer;
    sum:integer = 0;
begin
    for i := 1 to 99 do
    begin
        if (i mod 3 = 0) then
            sum := sum + i;
    end;
    writeln(sum);
end.
Z:\>fpc Pas0105.pp -v0
Free Pascal Compiler version 2.6.2 [2013/02/12] for i386
Copyright (c) 1993-2012 by Florian Klaempfl and others

Z:\>Pas0105
1683

Ada

VB.NET

Module VB0105
    Public Sub Main()
        Dim sum As Integer = 0
        For i As Integer = 1 To 99
            If i Mod 3 = 0 Then
                sum += i
            End If
        Next
        Console.WriteLine(sum)
    End Sub
End Module
Z:\>vbc -nologo VB0105.vb

Z:\>VB0105
1683

C#

public class CS0105
{
    public static void Main()
    {
        int sum = 0;
        for (int i = 1; i < 100; i++)
        {
            if (i % 3 == 0)
            {
                sum += i;
            }
        }
        System.Console.WriteLine(sum);
    }
}
Z:\>csc -nologo CS0105.cs

Z:\>CS0105
1683

Java

public class Java0105 {
     public static void main(String []args) {
        int sum = 0;
        for (int i = 1; i < 100; i++) {
            if (i % 3 == 0) {
                sum += i;
            }
        }
        System.out.println(sum);
     }
}
Z:\>javac Java0105.java

Z:\>java Java0105
1683

C++

#include <iostream.h>

int main()
{
    int sum = 0;
    for (int i = 1; i < 100; i++)
    {
        if (i % 3 == 0)
        {
            sum += i;
        }
    }
    cout << sum << endl;;

    return 0;
}
Z:\>bcc32 CP0105.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
CP0105.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

Z:\>CP0105
1683

Objective-C

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    int sum = 0;
    int i;
    for (i = 1; i < 100; i++)
    {
        if (i % 3 == 0)
        {
            sum += i;
        }
    }
    printf("%d\n", sum);

    return 0;
}
Compiling the source code....
$gcc `gnustep-config --objc-flags` -L/usr/GNUstep/System/Library/Libraries -lgnustep-base main.m -o demo -lm -pthread -lgmpxx -lreadline 2>&1

Executing the program....
$demo
1683

D

Go

Scala

object Scala0105 {
    def main(args:Array[String]) {
        var sum = 0
        for (i <- 1 to 99) {
            if (i % 3 == 0) {
                sum += i
            }
        }
        println(sum)
    }
}
Z:\>scala Scala0105.scala
1683

F#

module Fs0105

let mutable sum = 0
for i in [1..99] do
    if (i % 3 = 0) then
        sum <- sum + i

printfn "%d" sum

exit 0
Z:\>fsi Fs0105.fs --nologo --quiet
1683

Clojure

(defn total [n]
    (if (zero? n) 0
        (if (= (mod n 3) 0)
            (+' n (total (dec n)))
            (total (dec n)))))

(println (total 99))
Z:\>java -cp C:\ProgramFiles\clojure-1.5.1\clojure-1.5.1.jar clojure.main Clj0105.clj
1683

Haskell

total 0 = 0
total i =
    if i `mod` 3 == 0 then
        i + total (i - 1)
    else
        total (i - 1)
        
main = print (total 99)
Z:\>runghc Hs0105.hs
1683
inserted by FC2 system