C语言求1到20阶乘的和,出来的是负数
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/05 00:12:57
C语言求1到20阶乘的和,出来的是负数
代码如下
#include
main()
{
long double s=-1,i,n,t=1;
for(n=1;n0;i--)
t=t*i;
}
printf("1!+2!+3!+...+20!=%d\n",s);
return 0;
}
代码如下
#include
main()
{
long double s=-1,i,n,t=1;
for(n=1;n0;i--)
t=t*i;
}
printf("1!+2!+3!+...+20!=%d\n",s);
return 0;
}
![C语言求1到20阶乘的和,出来的是负数](/uploads/image/z/7309450-10-0.jpg?t=C%E8%AF%AD%E8%A8%80%E6%B1%821%E5%88%B020%E9%98%B6%E4%B9%98%E7%9A%84%E5%92%8C%2C%E5%87%BA%E6%9D%A5%E7%9A%84%E6%98%AF%E8%B4%9F%E6%95%B0)
long double 改为 double,%d 改为 %lf #include <stdio.h>
int main()
{
double s = 0, t = 1, n;
for (n = 1; n <= 20; n++)
{
t *= n;
s += t;
}
printf("1!+2!+3!+...+20! = %.0lf\n",s);
return 0;
}
// 输出:1!+2!+3!+...+20! = 2561327494111820288 另外,你的程序求的是 19!.
再问: 为什么要改为double?long double不是包括double吗? 整数为什么要用浮点%lf for那里是n
int main()
{
double s = 0, t = 1, n;
for (n = 1; n <= 20; n++)
{
t *= n;
s += t;
}
printf("1!+2!+3!+...+20! = %.0lf\n",s);
return 0;
}
// 输出:1!+2!+3!+...+20! = 2561327494111820288 另外,你的程序求的是 19!.
再问: 为什么要改为double?long double不是包括double吗? 整数为什么要用浮点%lf for那里是n