解题思路:
题意很简单,是一个阶乘累加的算法设计。
如果要实现这个算法,就要做到两个工作,先分别阶乘,再累加。
我设计了一个子程序用于阶乘。
注意事项:
阶乘是一个让数值大小级数级倍增的算法,普通的int求和时会在n值极小时就溢出。所以关键在于存放最后结果和中间阶乘时候的两个值的声明 long long.
参考代码:
#include <iostream> using namespace std; long long lvmultiple(int);//阶乘声明 int main() { int n; long long sum=0; cin>>n; for(int i=1;i<=n;i++) { sum=sum+lvmultiple(i); } cout<<sum<<endl; return 0; } long long lvmultiple(int a)//阶乘实现 { long long sum=1; for(int i=1;i<=a;i++) sum=sum*i; return sum; }
0.0分
3 人评分
妹子杀手的故事 (C语言代码)浏览:691 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:633 |
A+B for Input-Output Practice (VI) (C++代码)浏览:418 |
兰顿蚂蚁 (C++代码)浏览:1091 |
用筛法求之N内的素数。 (C语言代码)浏览:1260 |
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:963 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:1341 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:569 |
1012题解浏览:869 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:489 |