求数列的和
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项的和。
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
Input
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
Output
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
Sample Input
81 4 2 2
Sample Output
94.73 3.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 ID | Submit Time | Judge Status | Pro.ID | Exe.Time | Exe.Memory | Code Len. | Language | Author |
11163141 | 2014-07-24 09:50:08 | Accepted | 2009 | 0MS | 240K | 307 B | C++ | 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