Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
数列的定义如下: 数列的第一项为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
Hint*
Source
HDOJ
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double f(double a,int b)
{
double sum = 0;
int i;
for(i=1;i<=b;i++)
{
//循环体中的语句顺序不能颠倒;
sum += a;
a = sqrt(a);
}
return sum;
}
int main()
{
double n;
//直接将n定义为double型数据在下面操作中更简单,也可以在定义一个double型数据,将n的值赋给它;
int m;
while(~scanf("%lf%d",&n,&m))
//循环调用并输出结果
{
printf("%.2lf\n",f(n,m));
}
return 0;
}