習題2-4 子序列的和

輸入兩個正整數 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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章