子序列的和
输入两个正整数n<m<10^6,输出1/n^2+1/(n+1)^2+...+1/m^2,保留5位小数。输入包含多组数据,结束标记为n=m=0。样例输入:
2 4
65536 655360
0 0
样例输出:
case 1:0.42361
case 2:0.00001
下面是我的程序
#include<stdio.h>
main()
{
int n,m,kase=0;
double s;
while(scanf("%d%d",&n,&m)==2&&(n!=0||m!=0))
{
s=0;
for(int i=n;i<=m;i++)
{
s+=1.0/(i*i);
}
printf("case %d: %.5f\n",++kase,s);
}
}
计算第二组数据(65536 655360)时,出现溢出得不到正确结果,应该怎么改?