HDU_2011——求多项式的前n项和

Problem Description
多项式的描述如下:
1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ...
现在请你求出该多项式的前n项的和。
 

 

Input
输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n,n<1000),求该多项式的前n项的和。
 

 

Output
对于每个测试实例n,要求输出多项式前n项的和。每个测试实例的输出占一行,结果保留2位小数。
 

 

Sample Input
2 1 2
 

 

Sample Output
1.00 0.50
 1 #include <cstdio>
 2 double fun(int n)
 3 {
 4    double ans=0;
 5    int flag=1;
 6    for(int i=1;i<=n;i++)
 7       {
 8          ans=ans+(double)flag/i;
 9          flag=-1*flag;
10       }
11    return ans;   
12 }
13 int main()
14 {
15    int m,num;
16    double ans[100];
17    while(~scanf("%d",&m))
18       {
19          for(int i=0;i<m;i++)
20             {
21                scanf("%d",&num);
22                ans[i]=fun(num);  
23             }
24          for(int i=0;i<m;i++)
25             {
26                printf("%.2lf\n",ans[i]);   
27             }    
28       }
29    return 0;   
30 }

 

posted @ 2013-06-16 17:14  瓶哥  Views(524)  Comments(0Edit  收藏  举报