输入两个正整数n<m<106,输出 ,保留5位小数。输入包含多组数据, 结束标记为n=m=0。提示:本题有陷阱。
样例输入:
2 4
65536 655360
0 0
样例输出:
Case 1: 0.42361
Case 2: 0.00001
陷阱是:当n很大时n*n会很大,所以应该分两次除
#include<stdio.h>
#include<math.h>
int main()
{
int m,n,i,count=0;
double sum;
while(scanf(“%d%d”,&n,&m)!=EOF&&n&&m&&n<m)
{
sum=0;
count++;
for(i=n;i<=m;i++)
{
sum+=1.0/i/i;
}
printf(“Case %d:%.5f\n”,count,sum);
}
return 0;
}