宋敬欢


私信TA

用户名:uq_70411505902

访问量:674

签 名:

我在leetcode刷题不在这里刷

等  级
排  名 7105
经  验 1289
参赛次数 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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

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