对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!?
展开全部
这个题目大多数人都会使用双循环,但是当n的值非常大的时候性能就非常低O(n2),下面是O(n)的一种做法:
#include <stdio.h>
int main()
{
unsigned int n, i, sum = 0, pre = 1;
scanf("%d", &n);
if (n == 0)
return 0;
for (i = 1; i <= n; i++) {
pre *= i;
sum += pre;
}
printf("%d\n", sum);
return 0;
}
#include <stdio.h>
int main()
{
unsigned int n, i, sum = 0, pre = 1;
scanf("%d", &n);
if (n == 0)
return 0;
for (i = 1; i <= n; i++) {
pre *= i;
sum += pre;
}
printf("%d\n", sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询