解题思路:
要求解此题需要知道什么是阶乘,例:5!=1*2*3*4*5;3!=1*2*3,以此类推
可根据题目,拿到输入的数字,即可找到式子的最后一项,即输入5,则最后一项即为5!。此时可利用for循环求得5!的值,再在此for循环外面套一个for循环,以用于求4!,3!.....1!,再把所有值加起来即可
注意事项:
1、由于此题数据较大,故定义时建议全部定义成long类型,以免爆内存
2、中间值b每次用完之后需要置1,以免影响后续操作
参考代码:
#include<iostream>
//#include<bits/stdc++.h>
using namespace std;
int main()
{
long a,b,i,j,sum;//防止数据爆表
b = 1;//定义中间值b,用于存储n!的值
sum = 0;
cin >> a;
for (i = a; i > 0; i--)//拿到n!,(n-1)!,...,1!
{
for (j = i; j > 0; j--)//拿到n!的值,(n-1)!的值,....,1!的值
{
b *= j;
}
sum += b;//累加每次得到的阶乘的值
b = 1;//把b置1以便下次操作
}
cout << sum << endl;
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题6.5 (Java代码)浏览:1250 |
C语言考试练习题_排列 (C++代码)浏览:713 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:643 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:568 |
【偶数求和】 (C语言代码)浏览:588 |
1642题解浏览:784 |
1113题解浏览:823 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:654 |
妹子杀手的故事 (C语言代码)浏览:1152 |
C语言程序设计教程(第三版)课后习题12.1 (C语言代码)浏览:689 |