在我们利用已学知识,我们可以实现n!
#include<stdio.h>
int main()
{
int i = 1;
int n = 0;
int ret = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
printf("%d", ret);
}
实现n!的关键就在于for循环内的语句 ret=ret*i
在我们完成n!的实现后,我们可以来尝试 1!+2!+3!+4!……10!
#include<stdio.h>
int main()
{
int i = 1;
int n = 0;
int ret = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
ret = 1;//注意,此行代码易被省略掉
for (i = 1; i <= n; i++)
{
ret = ret * i;
}
sum = sum + ret;
}
printf("%d\n", sum);
}
最后sum输出的结果是4037913,也要记住第一个for循环中的记得对ret进行初始化ret=1
上面的代码用了两个for循环,我们还可以对上面代码进一步优化,变成一个for循环,更为简便
#include<stdio.h>
int main()
{
int i = 1;
int n = 0;
int ret = 1;
int sum = 0;
for (n = 1; n <= 10; n++)
{
ret = ret * n;
sum = sum + ret;
}
printf("%d\n", sum);
}
它的优化手段就是能够利用上一次的结果,避免了代码工作的重复运行。