描述
用高精度计算出S=1!+2!+3!+…+n!(n≤50)
其中“!”表示阶乘,例如:5!=5*4*3*2*1。
输入正整数N,输出计算结果S。
输入
一个正整数N。
输出
计算结果S。
样例输入
5
样例输出
153
源码
#include <stdio.h>
#include <stdlib.h>
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