利用递归计算一系列

时间:2011-12-05 04:06:15

标签: java recursion

我必须无法绕过尝试在递归方法中存储值的概念。使用迭代解决这个问题需要几秒钟,但我正在努力进行递归调用。基本上我想解决:1/1 + 1/2 + 1/3 ...

 public static void main(String[] args) {

    Scanner input = new Scanner(System.in);    

    System.out.print("Enter in the end number for the sequence: ");
    int endpoint = input.nextInt();

    System.out.println("The value of the sequence is : " + calcSequence(endpoint));

    }

    public static double calcSequence (int index){

        if (index == 0)
            return 0;
        else
            return (1/index) + calcSequence(index - 1);
    }

1 个答案:

答案 0 :(得分:6)

您需要添加一些显式类型转换。您的1/index正在执行整数除法,并且您的调用正在失去其所有精度。只需将其更改为1.0/index(或1d/index以表明1应该用作double),就可以获得您想要的内容。