问题标题: 酷町堂:2405 递归求阶乘

0
0
已解决
翟谦瑞
翟谦瑞
新手守护
新手守护

二话不说,代码奉上!

#include <iostream>
using namespace std;
int f(long long int a)
{
    if(a==1)return 1;
    return f(a-1)*a;
}
int main()
{
    long long int n;
    cin>>n;
    cout<<f(n);
    return 0;
}

此程序超过13就用不了了,又没爆,咋搞跌?

悬赏10


0
已采纳
马佳滢
马佳滢
新手天翼
新手天翼

我刚刚也做这一道题目,刚刚才做好,就是这个wrong了.

0
王睿卿
王睿卿
高级守护
高级守护

只要把定义函数的int改成long long就行了。

0
孙志浩
孙志浩
资深守护
资深守护

有一个在<cmath>里的函数如下,可以求任何不大于167.6的实数-1的阶乘(关于小数阶乘,请自行百度搜索“广义阶乘”)。

long double tgamma(long double n)

如3!=tgamma(4)=6

0
项依凡
项依凡
初级光能
初级光能

int f(long long int a)这个的第一个int应该换为long long //望采纳

0
0
杨子逸
杨子逸
新手天翼
新手天翼
long long int sum(long long int x)
{
    if(x==1)
    return 1;
    return x*sum(x-1);
}
int main()
{
    long long int a;
    输入>>a;
    cout<<sum(a);
我要回答