解题思路:
写factorial( )函数利用递归求阶乘
易知,x!=x*(x-1)!=x*(x-1)*(x-2)!=...=x*(x-1)*(x-2)*...*1
因此,可以利用递归求得x!,即在factorial函数内调用factorial 函数
核心代码
long long factorial(int x){
if(x<=1) return 1;
else return x*factorial(x-1);
}
阶乘结果和最后求和结果Sn会很大,定义时要定义成long long int型变量
参考代码:
本题思路清晰,代码较简单
#include<iostream>
using namespace std;
long long sum=1;
long long factorial(int x){
if(x<=1) return 1;
else
return x*factorial(x-1);
}
int main()
{
int n;
cin>>n;
for(int i=2;i<=n;i++){
sum+=factorial(i);
}
printf("%lu",sum);
return 0;
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:615 |
字符串输入输出函数 (C++代码)(都当成字符串吧hhhhhhhh)浏览:508 |
高精度加法 (C++代码)(大数加法)浏览:1008 |
不容易系列 (C语言代码)浏览:702 |
简单的a+b (C++语言代码)浏览:895 |
数组输出 (C语言代码)错误???浏览:602 |
WU-复数求和 (C++代码)浏览:2119 |
WU-C语言程序设计教程(第三版)课后习题11.11 (C++代码)(想学链表的可以看看)浏览:1462 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:580 |