#include <stdio.h>
/* 再帰を使った階乗計算 */
unsigned long factorial(unsigned long n)
{
if (n == 0) return 1;
return (n * factorial(n - 1));
}
/* メイン ルーチン */
int main()
{
unsigned long x, y;
printf("正の整数を入力:");
scanf("%lu", &x);
y = factorial(x);
printf("%lu の階乗:%lu\n", x, y);
return 0;
}