明明很简单,我却错了N++遍,主要原因是在于自己,给自己测试数据时,忘了测大数据,因为只保留小数点后两位,而200以后的数都是0.69.
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main()
{
double a[1001];
double t;
int n,tt;
a[0]=0;
a[1]=1;
for(int i=2;i<=1001;i++)
{
t=1.0/i;
if(i%2==0)
a[i]=a[i-1]-t;
else a[i]=a[i-1]+t;
}
scanf("%d",&tt);
while(tt--)
{
scanf("%d",&n);
if(n<1000)
printf("%.2lf\n",a[n]);
else printf("0.69\n");
}
return 0;
}