c语言编程问题

Input a number输入一个数字
Using the recursion使用递归
Print factorial value of the number打印值的数字
图片说明

 #include <stdio.h>
long long foo(long long n)
{
    if (n == 2) return 2;
    return n * foo(n - 1);
}
int main()
{
    long long n = 0;
    printf("input the number : ");
    scanf("%lld", &n);
    long long r = foo(n);
    printf("%lld! : %lld\n", n, r);
}

你的答案不对,15阶乘是1307674368000

 #include <stdio.h>
int foo(long n)
{
    if (n == 2) return 2;
        return n * foo(n - 1);
}
int main()
{
    long n = 0;
        printf("input the number : ");
        scanf("%d", n);
        int r = foo(n);
        printf("%d! : %d\n", n, r);
}

http://blog.chinaunix.net/uid-20371452-id-1697170.html

如果是学生,推荐你看剑指offer这本书,你问得问题里边有,里边总结了好多经典的题目,都有最优解,值得慢慢研究,毕业找工作帮助很大,很多面试时都会问到,注意不是打广告,前段时间找工作这本书帮了大忙,所以吐血推荐