子序列的和

输入两个正整数n<m<10^6 ,输出 1/n^2+1/(n+1)^2+…+1/m^2,保留5位小数。输入包含多组数据,结束标记为n=m=0。提示:本题有陷阱。

样例输入:
2 4
65536 655360
0 0

样例输出:

Case 1: 0.42361
Case 2: 0.00001

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int flag=0;
        while(true){
            flag++;
            double n = sc.nextDouble();
            double m=sc.nextDouble();
            if(n==0&&m==0){
                break;
            }
            double sum=0;
            for(double i=n;i<=m;i++){
                sum+=1/(i*i);//对于c语言,sum=sum+1/i/i,否则会有结果溢出
            }
            System.out.println("Case "+flag+":"+String.format("%.5f",sum));
        }
    }
}

 

posted @ 2021-11-13 19:52  xuxianglu  阅读(11)  评论(0编辑  收藏  举报