要求:(如果不符合要求,则给出出错提示)
求 sum = 1! + 2! + 3! +····+ n!
三种方法求解
方案一:两个for循环
#include <stdio.h>
int main()
{
int sum = 0, temp = 1;
int i = 0, j = 0;
int input = 0;
scanf("%d", &input);
if (input > 10)
{
printf("错误提示:不符合要求\n");
return 0;
}
for (i = 1; i <= input; i++)
{
temp = 1;
for (j = 1; j <= i; j++)
{
temp *= j;
}
sum += temp;
}
printf("sum = %d\n", sum);
return 0;
}
方案二:递归方法
#include <stdio.h>
int Sum(int n);
int Sum(int n)
{
int i = 1, temp = 1, sum = 0;
if (n <= 10 && n > 0)
{
for (i = 1; i <= n; i++)
{
temp *= i;
}
sum = temp;
sum += Sum(n - 1);
}
return sum;
}
int main()
{
int input = 0;
scanf("%d", &input);
if (input > 10)
{
printf("错误提示:不符合要求\n");
return 0;
}
printf("sum = %d\n", Sum(input));
return 0;
}
方案三:最简单的方法
#include <stdio.h>
int main()
{
int sum = 0, temp = 1;
int i = 0, j = 0;
int input = 0;
scanf("%d", &input);
if (input > 10)
{
printf("错误提示:不符合要求\n");
return 0;
}
for (i = 1; i <= input; i++)
{
temp *= i;
sum += temp;
}
printf("sum = %d\n", sum);
return 0;
}