多项式求和

来源:互联网 发布:河头店农村淘宝地址 编辑:程序博客网 时间:2024/06/05 14:33

题目描述

多项式描述如下:
1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 ……
先请你求出多项式前n项的和。

输入

第一行输入一个数T代表测试数据个数(T<=1000)。接下来T行每行1个数代表n(0<=n< 2^31)。
 

输出

 对于每个输入样例,输出多项式和的结果(结果精确到小数点后两位)。每行输出一个结果。
题解:这个题给的测试的数据太大,如果暴力找,容易超时,但是你测试发现,在超出某个数之后,它的值趋于稳定。

示例输入

212

示例输出

1.000.50 
#include<bits/stdc++.h>using namespace std;typedef struct node{    int data;    struct node *next;} count1;int main(){    int T,i;    long long n;    count1 *head,*tail,*p;    head=new count1();    head->next=NULL;    tail=head;    cin>>T;    while(T--)    {        double sum=0.00;        cin>>n;        if(n>=100)        {            sum=0.69;            cout<<sum<<endl;        }        else        {            for(i=1; i<=n; i++)            {                p=new count1();                p->data=i;                p->next=NULL;                tail->next=p;                tail=p;                if(i%2==0)                {                    sum-=1.0/p->data;                }                else                    sum+=1.0/p->data;            }            cout<<fixed<<setprecision(2)<<sum<<endl;        }    }    return 0;}

先请你求出多项式前n项的和。

输入

第一行输入一个数T代表测试数据个数(T<=1000)。接下来T行每行1个数代表n(0<=n< 2^31)。
 

输出

 对于每个输入样例,输出多项式和的结果(结果精确到小数点后两位)。每行输出一个结果。

示例输入

212

示例输出

1.000.50 
0 0
原创粉丝点击