#include <stdio.h>
/* 階乗を求める関数(再帰なし) */
int fact(int n)
{
int result = 1;
int i;
for(i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int main(void)
{
int i;
/* 1~10の階乗を表示 */
for(i = 1; i <= 10; i++) {
printf("%d! = %d\n", i
, fact
(i
)); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovKiDpmo7kuZfjgpLmsYLjgoHjgovplqLmlbDvvIjlho3luLDjgarjgZfvvIkgKi8KaW50IGZhY3QoaW50IG4pCnsKICAgIGludCByZXN1bHQgPSAxOwogICAgaW50IGk7CgogICAgZm9yKGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIHJlc3VsdCAqPSBpOwogICAgfQoKICAgIHJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIGludCBpOwoKICAgIC8qIDHvvZ4xMOOBrumajuS5l+OCkuihqOekuiAqLwogICAgZm9yKGkgPSAxOyBpIDw9IDEwOyBpKyspIHsKICAgICAgICBwcmludGYoIiVkISA9ICVkXG4iLCBpLCBmYWN0KGkpKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==