习题2_4子序列的和

package 第二章习题;


import java.util.Scanner;


/*
 * 输入两个正整数n<m<1e6,输出1/n*n+1/(n+1)*(n+1)+...+1/m*m
 * 保留五位小数,输入包含多组数据,结束标记为n=m=0.
 * 提示:本题有陷阱
 * 样例输入:
 * 2 4
 * 65536 655360
 * 0 0
 * 样例输出:
 * Case 1: 0.42361
 * Case 2: 0.00001
 */
public class 习题2_4子序列的和 {


public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
double sum=0.0;
do
{
int n=in.nextInt();
int m=in.nextInt();
if(n==0&&m==0) 
{
break;
}

for(int i=n;i<=m;i++) 
{
//尝试将1/(n*n)转换为1/n/n的形式,可以避免溢出
sum+=1.0/i/i;
}
System.out.printf("%.5f",sum);
sum=0.0;
}while(true);

}


}
全部评论

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务