J - 求数列的和 HDU - 2009
数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
Input
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
Output
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
Sample Input
81 4 2 2
Sample Output
94.73
代码示例:
#include<stdio.h>
#include<math.h>
#define M 1000
int main(){
int m,n;
while(scanf("%d%d",&n,&m)!=EOF){
double a[M],sum;
sum=m==0?0:n;
a[0]=n;
for(int i=1;i<m;i++){
a[i]=sqrt(a[i-1]);
sum+=a[i];
}
printf("%.2f\n",sum);
}
}
这道题目判定时有些问题,如:
输入: 2 0 应输出:0
但在这里判定时数据库里可能默认为m与n为正整数,无论考不考虑m是否为0都能通过。