自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
输入格式:
输入第一行中给出非负整数 n(≤1000)。
输出格式:
在一行中输出部分和的值,保留小数点后八位。
输入样例:
10
输出样例:
2.71828180
代码如下:
#include<stdio.h>
int main(void){
int i,j,N;
double S,n;
S=1;
scanf("%d",&N);
for(i=1;i<=N;i++){
n=1;
for(j=1;j<=i;j++){
n=n*j;
}
S=S+1.0/n;
}
printf("%.8f",S);
return 0;
}
错误代码如下:
本人目前容易犯的一个思维误区
#include<stdio.h>
int main(void){
int N;
int i,j;
double S;
S=1;
scanf("%d",&N);
for(i=1;i<=N;i++){
for(j=1;j<=i;j++){
j*=j;
}
S=S+1.0/j;
}
printf("%.8f",S);
return 0;
}