用whlie或do while循环求1-20的阶层,不能嵌套

来源:百度知道 编辑:UC知道 时间:2024/07/08 01:36:56
题目是s=1+2!+3!+4!+5!....n!(n<20),不要太复杂了,谢谢啦各位。前一位的程序是错的啊!

不好意思 刚刚写的有点错误,改了下,现在好了,谢谢那位的提醒~~我刚没有注意,不好意思,呵呵,晕,我还当就求个20的阶乘呢,这回好了,改好了又

#include <stdio.h>

#define N 20 //1+2!+3!+4!+5!....N!自己定义N

int main()
{
int i=1;
long double sum=0;
long double ret=1;
while(i<=N)
{
ret*=i;
sum+=ret;
i++;
}
printf("Result is %.0lf",sum);
printf("\n");

return 0;
}

好复杂……要考虑到数字的大小
本人TC,算到16!=2004189184
17!=-288522240
的阶乘就已经超出范围(long)
所以说,还是要注意一下……

vc6.0也是一样