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);
}
}
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);
}
}