n从0取到9,一个for循环,n++,n=0,n<=9
n=4,求1/4!+1/3!+1/2!+1/1!+1/0!
需要一个for循环,i=n,i>=0,i--
sum+=factorial(i)
即是第一个for循环定下一个n,第二个for循环用这个值递减到0
WA几次:
技巧:%g可以用来省略多余的0,如1.000000,我定义了浮点,可我就%g下,输出1
发现:1.%.10g小数点后只有9位,有的第九位是0,小数点后就只有8位
2.发现c语言的特性:对的1:
int main()
{
double a;
int temp=9;
a=1.0/temp;
printf("%lf",a);
}
对的2:
int main()
{
double a;
int temp=9;
a=(double)1/temp;
printf("%lf",a);
}
错的:
int main()
{
double a;
int temp=9;
a=(double)(1/temp);
printf("%lf",a);
}
代码如下:改天看大数阶乘
#include <stdio.h>
#include <stdlib.h>
int factorial(int index)
{
int i,temp=1;
if(index==0)
return 1;
else{
for(i=index;i>0;i--)
{
temp=temp*i;
}
return temp;
}
}
int main()
{
int n,i;
printf("n e\n");
printf("- -----------\n");
for(n=0;n<10;n++)
{
double sum=0;
for(i=n;i>=0;i--)
{
sum+=(double)1/factorial(i);
}
printf("%d %.10g\n",n,sum);
}
return 0;
}