Java 我必须为给定的递归创建迭代函数和递归函数

Java 我必须为给定的递归创建迭代函数和递归函数,java,recursion,Java,Recursion,迭代部分是错误的地方。当我输入5时,递归方法得到-79,迭代方法得到不同的数字。递归关系是: 当n=1时,a1=2,这是我们的基本情况; 当n时,an=4an-1-3n≥ 2. 我不知道我是否放对了。我需要一些建议。在您的running更新中,您希望使用递归函数的当前值num的等效值。这就是迭代中的I。另外,您可以将running初始化为2,然后在循环中重新使用它。这允许您完全降低电流和基极: import java.util.Scanner; public class q2Recursion

迭代部分是错误的地方。当我输入5时,递归方法得到-79,迭代方法得到不同的数字。递归关系是:

当n=1时,a1=2,这是我们的基本情况; 当n时,an=4an-1-3n≥ 2.
我不知道我是否放对了。我需要一些建议。

在您的running更新中,您希望使用递归函数的当前值num的等效值。这就是迭代中的I。另外,您可以将running初始化为2,然后在循环中重新使用它。这允许您完全降低电流和基极:

import java.util.Scanner;

public class q2Recursion
{
    public static void main(String args[])
    {
        Scanner scan = new Scanner(System.in);
        int num = scan.nextInt();

        System.out.println(q2Iterative(num));
        System.out.println(q2Recursive(num));
    }

    public static int q2Iterative(int num)
    {
        int base = 2;
        int current = base;
        int running = current;

        for(int i = 2; i <= num; i++)
        {
            running = 4 * current - 3 * num;
            current = running;
        }
        return running;
    }

    public static int q2Recursive(int num)
    {
        if(num == 1)
        {
            return 2;
        }
        else
        {
            return 4 * q2Recursive(num - 1) - 3 * num;
        }
    }       
}
import java.util.Scanner;

public class q2Recursion
{
   public static void main(String args[])
   {
       Scanner scan = new Scanner(System.in);
       int num = scan.nextInt();

       System.out.println(q2Iterative(num));
       System.out.println(q2Recursive(num));
   }
    public static int q2Iterative(int num)
    {
        int base = 2;
        int current = base;
        int running = current;

        for(int i=2;i<=num;i++)
        {
            running = (4*(current)) - (3*(i));
            current = running;
        }
        return running;
    }
    public static int q2Recursive(int num)
    {
        if(num == 1)
        {
            return 2;
        }
        else
        {
            return 4*(q2Recursive(num-1))-3*(num);
        }
    }

}

你想完成什么。。。仅仅给出数字而不描述任务是没有意义的。这意味着要细分到数学函数中,并生成一个ansewr@OusmaneDiaw num是我的输入我们不知道你想做什么,试着给出一个清晰简洁的目标细节。将一个值放入一个给定的函数中,并递归和迭代地返回该值,这是否足够清晰@freedev@basilroy数学函数的定义是什么?平方根?权力我们应该猜猜看吗?我拿到了,我把我的安瑟尔贴在了罚款的下面now@basilroy请注意,您的答案会创建不必要的变量,并进行额外的维护工作。您不需要base或current,只需要将running初始化为2。
running = 4 * running - 3 * i;