階乗を求める (再帰)
明解C言語 入門編 > 8. いろいろなプログラムを作ってみよう >
階乗を求める (再帰)
C
#include <stdio.h>int factorial(int n)
{
if (n > 0)
return (n * factorial(n -1));return 1;
}int main(int argc, char* argv[])
{
int n = 3;
printf("%dの階乗は%dです。\n", n, factorial(n));
}
実行結果
R:\>lesson063\Project1.exe
3の階乗は6です。
Delphi
program Project1;{$APPTYPE CONSOLE}
uses
SysUtils;function factorial(n:Integer):Integer;
begin
if n > 0 then
result := n * factorial(n -1)
else
result := 1;
end;procedure main();
var
n: Integer;
begin
n := 3;
writeln(format('%dの階乗は%dです。', [n, factorial(n)]));
end;begin
main;
end.
実行結果
S:\>lesson063\Project1.exe
3の階乗は6です。