home > 写経編 > 柴田望洋『明解C言語 入門編』 > 8. いろいろなプログラムを作ってみよう >

ForNext

Only Do What Only You Can Do

064. 最大公約数を求める (再帰)

VBScript

JScript

Perl

PHP

Python

Ruby

PowerShell

Scala

F#

C

更新日 : 2010.10.08
#include <stdio.h>

int gcdf(int vx, int vy)
{
    return (vy == 0 ? vx : gcdf(vy, vx % vy));
}

int gcd(int va, int vb)
{
    return (va > vb ? gcdf(va, vb) : gcdf(vb, va));
}

int main(int argc, char* argv[])
{
    int n1 = 8;
    int n2 = 22;
    printf("%dと%dの最大公約数は%dです。\n", n1, n2, gcd(n1, n2));

    return 0;
}
R:\>lesson064\Project1.exe
22と8の最大公約数は2です。

C++

C++Builder

VC++

C#

Java

更新日 : 2010.11.05
class Lesson064 {
    public static void main(String[] args) {
        int n1 = 8;
        int n2 = 22;
        System.out.printf("%dと%dの最大公約数は%dです。\n", n1, n2, gcd(n1, n2));
    }

    static int gcdf(int vx, int vy) {
        return (vy == 0 ? vx : gcdf(vy, vx % vy));
    }

    static int gcd(int va, int vb) {
        return (va > vb ? gcdf(va, vb) : gcdf(vb, va));
    }
}
L:\>java Lesson064
8と22の最大公約数は2です。

Objective-C

D

VB

VB.NET

Delphi

更新日 : 2010.09.24
program Project1;

{$APPTYPE CONSOLE}

uses
    SysUtils;

function gcdf(vx:Integer; vy:Integer):Integer;
begin
    if vy = 0 then
        result := vx
    else
        result := gcdf(vy, vx mod vy);
end;

function gcd(va:Integer; vb:Integer):Integer;
begin
    if va > vb then
        result := gcdf(va, vb)
    else
        result := gcdf(vb, va);
end;

procedure main();
var
    n1, n2: Integer;
begin
    n1 := 8;
    n2 := 22;
    writeln(format('%dと%dの最大公約数は%dです。', [n1, n2, gcd(n1, n2)]));
end;

begin
    main;
end.
S:\>lesson064\Project1.exe
22と8の最大公約数は2です。

Ada

PL/SQL

T-SQL

関数型

inserted by FC2 system