本题题目不难,但由于题目给的格式和测试需要的格式不一样,怎样做都不对,经过查看别人的博客我才发现了这个永远都发现不了的错误。本题易错点是会误以为是1+1/1+1/2+1/3+1/4...但却是1+1/1+1/(1*2)+1/(1*2*3)+1/(1*2*3*4)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
double b[10],a;
b[0]=1;
b[1]=2;
b[2]=2.5;
a=1.0/(1*2);
/*b[3]=b[2]+1.0/(1*2*3);
b[4]=b[3]+1.0/(1*2*3*4);
b[5]=b[4]+1.0/(1*2*3*4*5);
b[6]=b[5]+1.0/(1*2*3*4*5*6);
b[7]=b[6]+1.0/(1*2*3*4*5*6*7);
b[8]=b[7]+1.0/(1*2*3*4*5*6*7*8);
b[9]=b[8]+1.0/(1*2*3*4*5*6*7*8*9);*/
//若是数据不多可以采取上诉方式,若是数据过多则必须采取下面的方式
for(i=3;i<10;i++)
{
a=a/i;
b[i]=b[i-1]+a;
}
printf("n e\n");//题目和答案格式不相符,这是能通过oj的格式
printf("- -----------\n");//题目和答案格式不相符,这是能通过oj的格式
printf("0 %.0lf\n",b[0]);
printf("1 %.0lf\n",b[1]);
printf("2 %.1lf\n",b[2]);
for(i=3;i<10;i++)
printf("%d %.9lf\n",i,b[i]);
return 0;
}