宋敬欢


私信TA

用户名:uq_70411505902

访问量:737

签 名:

我在leetcode刷题不在这里刷

等  级
排  名 7631
经  验 1296
参赛次数 1
文章发表 5
年  龄 19
在职情况 学生
学  校 山东工程职业技术大学
专  业 软件工程

  自我简介:

我在leetcode刷题不在这里刷

解题思路: 这道题 其实不难,两种思路,两种复杂度,思路一、分别求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 人评分

  评论区

好的学长
2022-10-16 21:57:34
  • «
  • 1
  • »