3595 - 【基础题】子序列的和(subsequence)

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

输入两个正整数n < m < 10^6,输出  ,保留5位小数。输入包含多组数据,结束标记为n = m = 0。

<br />

题目输入

题目输出

输入/输出样例

输入格式

2 4
65536 655360
0 0

输出格式

Case 1: 0.42361
Case 2: 0.00001

C++解答

// 由于保留5为小数,n > 10000时只要sum = 0.00001即可
// 只需要循环n 至 n+100 


#include<stdio.h>

int main()
{
	int kcase = 0;	// 记录数据的组数 
	int n, m;	
	while(scanf("%d %d", &n, &m))
	{
		if(n == 0 && m == 0)
		{
			break;
		}
		double sum = 0;
		if(n >= 10000)
		{
			sum = 0.00001;
			printf("Case %d: %.5lf\n", ++kcase, sum);
			continue;
		}
		int a = n+100 > m ? m : n+100;
		for(int i = n; i <= a; i++)
		{
			sum += 1.0/(i*i);
		}
		printf("Case %d: %.5lf\n", ++kcase, sum);
	}
	
	
	
	return 0;
}