Description
输入两个正整数n<m<106,输出下面表达式的值,保留5位小数。
Input
输入数据有多组,第1行是一个正整数T,表示有T组测试数据,后面跟着T行,
每行由两个正整数n和m组成,n<m<106。
Output
对于每组测试数据,输出对应的结果,每组输出单独占一行。小数位数输出5位。
Sample Input
2
2 4
6536 7000
Sample Output
0.42361
0.00001
/*Description
输入两个正整数n<m<106,输出下面表达式的值,保留5位小数。
Input
输入数据有多组,第1行是一个正整数T,表示有T组测试数据,后面跟着T行,
每行由两个正整数n和m组成,n<m<106。
Output
对于每组测试数据,输出对应的结果,每组输出单独占一行。小数位数输出5位。
Sample Input
2
2 4
6536 7000
Sample Output
0.42361
0.00001*/
#include <stdio.h>
#include <math.h>
#define N 5
int main()
{
float fun(int a,int b);
int a[N][2],i,n,j,k;
scanf("%d",&n);
for(i = 0;i < n;i++)
{
scanf("%d %d",&j,&k);
if(j < k && k < 1e6)
{
a[i][0] = j;
a[i][1] = k;
}
}
for(i = 0;i < n;i++)
{
printf("%.5f\n",fun(a[i][0],a[i][1]));
}
}
float fun(int a,int b)
{
int i;
float sum = 0.0;
for(i = a;i <= b;i++)
{
sum += 1.0 / pow(i,2);
}
return sum;
}
在用数学函数pow(double x,double y)时,x与y全部都是int型,在进行计算的时候,pow自动变成了double型。