题目:求1+2!+3!+...+n!的和。
代码实现:
/*求1+2!+3!+...+18!的和*/
#include <stdio.h>
void main() {
long double n, sum1 = 1, sum2 = 0;
do
{
printf("请输入一个不大于18的数:\n");
scanf_s("%lf", &n);
if (n == 0)
{
break;
}
for (int i = 1; i <= n;)
{
sum1 = 1;
for (int j = 1; j <= i; j++)
{
sum1 *= j;
}
i++;
sum2 += sum1;
}
printf("1+2!+3!+...+n!=%lf\n", sum1);
sum2 = 0;
}while (n != 0);
}
实现结果:
注:依调试看程序没有问题,但是当输入的数大于“18”时,结果会出现偏差,目前还没有找出问题,作者希望能够得到解决!!!求!!!