输入两个正整数 n<m<10^6, 1/n2+1/(n+1)2…+1/m2,保留5位小数。输出包含多组数据,结束标记为 n=m=0。提示:本题有陷阱。
样例输入:
2 4
65536 655360
0 0
样例输出:
Case 1 : 0.42351
Case 2 : 0.00001
以下仅供参考,还有几个问题,例如题中的多组数据使用回车分开,在实际过程中用回车会直接出结果,用shift+回车也不行,渣渣智不知道到底对不对,还有题中说本题有陷阱,想了好大一会,不知是不是如果用int会溢出还是其他的什么陷阱,我还是个菜鸟,以后看能不能解决吧。
#include<stdio.h>
int main()
{
long long n,m;
int kcase=1;
while(scanf("%d %d",&n,&m)!=EOF && n && m )
{
if(n>100000 && m>100000) //判断是否大于数字限制
break;
double sum=0;
for(int i=n;i<=m;i++)
{
sum+=1.0/i/i;
}
printf("Case %d: %.5lf\n",kcase++,sum);
}
return 0;
}