3595 - 【基础题】子序列的和(subsequence)
输入两个正整数n < m < 10^6,输出
,保留5位小数。输入包含多组数据,结束标记为n = m = 0。
<br />
Input
Output
Examples
Input
2 4 65536 655360 0 0
Output
Case 1: 0.42361 Case 2: 0.00001
Solution 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; }