解题思路: 这道题 其实不难,两种思路,两种复杂度,思路一、分别求1 到 n 得阶乘,求完之后,再相加,但是这样得话,复杂度就会是O(n^2)
思路二、这里用到一个公式,就是n的阶乘 等于n - 1的阶乘乘以n,所以,我们就可以递推进行相加。
注意事项:
数据会很大所以要开long long
参考代码:
#include<iostream> using namespace std; int n; int main() { cin >> n; long long sum = 0,x = 1; for(int i = 1; i <= n; i++) { x = x*i; sum += x; } cout << sum; return 0; }
0.0分
5 人评分
【偶数求和】 (C语言代码)记得sum的归零时机浏览:924 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:722 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:490 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:536 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:377 |
输出正反三角形 (C语言代码)格式错误!!!浏览:1140 |
P1001 (C语言代码)浏览:799 |
简单的a+b (C语言代码)浏览:626 |
WU-格式化数据输出 (C++代码)浏览:1194 |
三角形 (C++代码)记忆化搜索浏览:1220 |