您的位置:首页 > 编程语言 > C语言/C++

hdu 2009 求数列和 平方根数列20140729.cpp

2014-07-29 20:13 302 查看
题目大意:

多组数,每组n,m。n是数列第一项,后每个数是前一个的平方根,求数列前m项和。输出一结果占一行,保留两位小数。

反思:

不用数组也可以,用n=sqrt(n)重复换掉n的值即可。

未ac原因:

把m,n输入顺序取反,这种同时多组输入多个数的问题要注意输入顺序。

 

代码:

#include<cstdio>

#include<math.h>

int main()

{

 int m,n,i;

 double sum;

 double a[1005];

 while(scanf("%d%d",&n,&m)!=EOF) //m,n的前后顺序要放对。

 {

  sum=(double)n;

  a[0]=(double)n;

  for(i=1;i<m;i++)

  {

   a[i]=sqrt(a[i-1]);

   sum+=a[i];

  }

  printf("%.2lf\n",sum);

 }

 return 0;

}

 

改良版:

#include<cstdio>

#include<math.h>

int main()

{

 int i;

 double sum,n,m;

 while(scanf("%lf%lf",&n,&m)!=EOF)

 {

  sum=0;

  for(i=0;i<m;i++)

  {

   sum+=n;

   n=sqrt(n);

  }

  printf("%.2lf\n",sum);

 }

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: