java - 在Java中递归地定义一个序列

标签 java recursion sequence

需要帮助解决这个问题,我不擅长递归。我需要编写一个方法来执行此操作:

输入变量 X 是 1 到 50 之间的整数。该函数应返回由递归定义的序列的第 X 项作为 Y:

f(1) = 1 f(2) = 3 f(X) = 2*f(X-1) – 2*f(X-2) 对于 X = 3,4,5,...

你的函数代码应该使用递归(而不是循环)

说实话,我什至不知道从哪里开始。任何帮助,将不胜感激。这是我当前的代码:

package p1parta;

import java.util.Scanner;

public class RecursiveSeq
{
    public static void main(String args[])
    {
       System.out.println("Please enter a number:");
       Scanner input = new Scanner(System.in);

       int x = input.nextInt();

       System.out.println(sequence(x));
    }

    public static int sequence(int x)
    {
        if(x == 1){
           return 1;
        }
        if (x == 2){
           return 3;
        }
        return 2 * sequence(x - 1) - 2 * sequence(x - 2);
    }
}

我尝试实现所示的解决方案,但从程序中获得的输出与我手动计算的结果不匹配。事实上,只是测试输入 3、4、5 和 6 唯一匹配的是 5

最佳答案

您的问题是递归的完美用例。一般来说,递归模式是:

func(context)
    if simple case
        return simple answer
    else
        call func(simpler context)
        and return combined results

尝试使用此模式来实现,如果遇到问题请回来。

关于java - 在Java中递归地定义一个序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39503399/

相关文章:

java - 结果集过早关闭

java - 不确定如何捕获和重新分配类中的合成成员

java - 测试返回类型为 void 的方法

javascript - Vuejs : Dynamic Recursive components (Tree Like Structure)

用于处理嵌套字典的 Python 递归 setattr() 类函数

recursion - 有人可以解释递归在这些过程中是如何工作的吗

r - Traminer R 用于序列分析 : how to account for state order besides spell lenght?

java - Java 中的 Twain 设备(扫描仪)控件

list - 与 List 相比,F# 序列操作主要慢吗?

database - 如何使用oracle sequence.nextval