HDOJ 2009 求数列的和

来源:互联网 发布:知乎的缺点 编辑:程序博客网 时间:2024/06/05 11:11

求数列的和

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 42991    Accepted Submission(s): 26577


Problem Description
数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
 

Input
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
 

Output
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
 

Sample Input
81 42 2
 

Sample Output
94.733.41
 

Author
lcy
 
代码:
#include <stdio.h>#include <math.h>int main (){    int m;    double n,sum;    while (scanf ("%lf%d",&n,&m)!=EOF)    {        sum=n;        for (int i=0;i<m-1;i++)        {            n=sqrt(n);            sum+=n;        }        printf ("%.2lf\n",sum);    }    return 0;}

Run IDSubmit TimeJudge StatusPro.IDExe.TimeExe.MemoryCode Len.LanguageAuthor111631412014-07-24 09:50:08Accepted20090MS240K307 BC++Hidden Secret
结论:
这道题主要先是看了别人的代码后才敲的,但是别人的感觉还是有点问题,所以加以改动了下。本来是想用递归函数来写,无奈自己又把递归函数忘了……看来还是要看基础啊
附:查看代码及地址
#include <stdio.h>#include <math.h> int main() {    int i,n,m;    double sum,k;    while(scanf("%d%d",&n,&m)!=EOF)         {        (double)sum=n; //强制转换成double型        k=n;        for(i=0; i<(m-1); i++)        {            k=sqrt(k);            sum+=k;        } //循环,求其前m项平方根的和    }    return 0;}
http://wenku.baidu.com/link?url=ek-b-8iWGaOzEHLnwjS1_WAuFK6mFcM1CPEEH7ss0nvvYvnLsGahZV2OzbuRifLTlVaRKPK87x0aBAtnKTdLGeQ0QJFwiER_mS7FvAktkHy

0 0