輸入兩個正整數 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;
}