利用Rational类求1/2+2/3+3/4+......+99/100的和
Rational:
public class Rational{
     private long numerator;
     private long denominator;
     public Rational(){
      this(0,1);
    }
    public Rational(long numerator,long denominator){
     long gcd=gcd(numerator,denominator);
     this.numerator=((denominator>0)? 1:-1)*numerator/gcd;
     this.denominator=Math.abs(denominator)/gcd;
    }
    public long gcd(long n,long d){
     long n1=Math.abs(n);
     long n2=Math.abs(d);
     int gcd=1;
     for(int k=1;k<=n1&&k<=n2;k++){
     if(n1%k==0&&n2%k==0)
     gcd=k;
     }
     return gcd;
    }
    public long getNumerator(){
     return numerator;
    }
    public long getDenominator(){
     return denominator;
    }
    public Rational add(Rational secondRational){
     long n=numerator*secondRational.getDenominator()+denominator*secondRational.getNumerator();
    
     long d=denominator*secondRational.getDenominator();
     return new Rational(n,d);
    }
    public String toString(){
     if(denominator==1)
     return numerator+"";
     else
     return numerator+"/"+denominator;
    }
}

解决方案 »

  1.   

    public class   Rational
    {
    public static void main(String [] args)
    {
    int m=1,n=2, sum=0,t,j=2;
    while(j<=100)
    {
    t=m/j;   //定义了一个分数
    sum+=t;  //求和
    j=n+1;   //实现分母自加
    n=j;    //把自加1后的值赋给分母
    m=n;     //自加前的值赋给分子
    }
    System.out.println(sum);
    }
    }
      

  2.   

     
            Double sum=0.0;
            Double temp=1.0;
            while(temp<=99){
             sum+=(temp/(temp+1));
             temp++;
            }
           System.out.println(sum);
      

  3.   


    temp 用int 类就好啦
      

  4.   

    public static void main(String[] args) {
    System.out.println(test(10));
    } public static double test(double i) {
    if (i == 1)
    return (double) 1 / 2;
    return test(i - 1) + i / (i + 1);
    }
      

  5.   

    package com.fzw.test;public class Rational { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {
    testCsdn();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

    public static void testCsdn() throws Exception {
    float sum=0.0f;
    for (int i = 1; i <100; i++) {
    String str=(i==99?"=":"+");
    sum +=(float)i/(i+1);
    System.out.print(i+"/"+(i+1)+str);
    }
    System.out.println(sum);
    }}
      

  6.   


    public class Test { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner input = new Scanner(System.in);
    int num =input.nextInt(); //num表示输入的最大的分母。

    float a,b,result; //单项里面,a是分子,b是分母,result表示输出结果
    a = 0;
    b = 0;
    result = 0;

    for(int i=1; i<num; i++) {
    a = i;
    b = i + 1;
    result += ( a / b ); 
    }

    System.out.println(result);
    }}
    hava a good  lunch !