Java 我必须为给定的递归创建迭代函数和递归函数
迭代部分是错误的地方。当我输入5时,递归方法得到-79,迭代方法得到不同的数字。递归关系是: 当n=1时,a1=2,这是我们的基本情况; 当n时,an=4an-1-3n≥ 2.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
我不知道我是否放对了。我需要一些建议。在您的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;