15:阶乘和(6分)

描述

高精度计算出S=1!+2!+3!+…+n!(n≤50)

其中“!”表示阶乘,例如:5!=5*4*3*2*1。

输入正整数N,输出计算结果S。

输入

一个正整数N。

输出

计算结果S。

样例输入

5

样例输出

153

源码

#include 
#include 

double fact(int n){  //用于计算阶乘

    double result;
    if(n==0||n==1)
        return 1;
    else
        result = fact(n-1)*n;
    return result;
}


double factsum(int n){  //用于计算阶乘和

    double result;
    if(n==1)
        return 1;
    else if(n==0)
        return 0;
    else
        result = factsum(n-1)+fact(n);
    return result;
}


int main()
{
    int n;
    scanf("%d",&n);
    //printf("%d\n",fact(n));
    printf("%.0lf\n",factsum(n));

    return 0;
}

提交至oj平台总是显示“wrong answer” 的错误,没有找到错误的根源,希望知道的大佬可以指点一下。哈哈^_^。

其他思路参照https://blog.csdn.net/zxdspaopao/article/details/84665733 

 

你可能感兴趣的:(NOI)