如何输出S=2/1+3/2+5/3+8/5+。。。的表达式?

问题描述:

编写方法double sumS(int n),已知参数n,求以下表达式前n项的和S返回。

S=2/1+3/2+5/3+8/5+。。。

注:下一项的分母=上一项的分子,下一项的分子=上一项的分子与分母的和。

要求:输入参数n后,不仅显示S表达式,而且输出结果。

import java.util.Scanner;

public class Test {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int n= scanner.nextInt();
        System.out.println(sumS(n));
    }

    public static double sumS(int n){
        double s=0;
        int a=1,b=2,c;
        StringBuffer sb = new StringBuffer("S=");
        for(int i=0;i<n;i++){
            sb.append(b);
            sb.append("/");
            sb.append(a);
            sb.append("+");
            s+=b*1.0/a*1.0;
            c = b;
            b = a+b;
            a = c;
        }
        if(sb.lastIndexOf("+")!=-1){
            sb.replace(sb.lastIndexOf("+"),sb.length(),"");
            System.out.println(sb.toString());
        }
        return s;
    }
}