一道题目:编写程序,求 1!+2!+...+10!
第一种方法(用两层for循环):
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
//外循环计算阶乘的和
for (n=1;n<=3;n++)
{
//内循环计算阶乘
//每次ret要重新赋值为1,不然ret会在之前循环的ret的基础上继续连乘,导致结果出错
ret = 1;
for (i = 1; i <= n; i++)
{
ret *= i;
}
sum += ret;
}
printf("%d\n",sum);
return 0;
}
第二种方法(用一层for循环):
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int n = 0;
int i = 1;
int ret = 1;
int sum = 0;
//这种方法效率高一点,只用一次循环可以完成
//在每次计算的阶乘的基础上乘上n,就是下一个的阶乘
for (n=1;n<=10;n++)
{
//计算n的阶乘,
ret *= n;
//计算阶乘的和
sum += ret;
}
printf("%d\n", sum);
return 0;
}