Java 如何开发显示序列的递归函数?
这就是问题所在: 开发递归函数Java 如何开发显示序列的递归函数?,java,recursion,Java,Recursion,这就是问题所在: 开发递归函数f(),以显示序列: 1 2 3 4 5...i (i-1) (i-2)...2 1 当调用f(1,i)时,在文本字段中 我们不允许使用循环、全局变量或数组。我们还必须能够使它在任何起点和终点都有效。例: f(2,5)=2 3 4 5 4 3 2. 我完全被难住了。请至少给我一个提示。假设函数必须返回字符串,这里有一个提示: 基本情况是当序列中只有一个数字时,返回一个带有该数字的序列。在其他情况下,您递归调用函数时,第一个参数少一个,然后将第一个参数放在结果的
f()
,以显示序列:
1 2 3 4 5...i (i-1) (i-2)...2 1
当调用f(1,i)
时,在文本字段中
我们不允许使用循环、全局变量或数组。我们还必须能够使它在任何起点和终点都有效。例:
f(2,5)=2 3 4 5 4 3 2.
我完全被难住了。请至少给我一个提示。假设函数必须返回字符串,这里有一个提示:
基本情况是当序列中只有一个数字时,返回一个带有该数字的序列。在其他情况下,您递归调用函数时,第一个参数少一个,然后将第一个参数放在结果的开头和结尾。使用两个递归函数。下面的代码未经测试-它旨在作为提示
void printSequenceForGivenNumber(int i)
{
printNextBiggerNumber(i, maximum);
printNextSmallerNumber(maximum - 1)
}
void printNextBiggerNumber(int input, int maximum)
{
if(input <= maximum)
{
System.out.print(input + " ");
printNextBiggerNumber(input + 1, maximum);
}
}
void printNextSmallerNumber(int input)
{
if (current > = 1)
{
System.out.print(input + " ");
printNextSmallerNumber(input - 1);
}
}
void printsequence宽恕编号(int i)
{
printNextBiggerNumber(i,最大值);
printNextSmallerNumber(最大值-1)
}
无效printNextBiggerNumber(整数输入,整数最大值)
{
如果(输入=1)
{
系统输出打印(输入+“”);
printNextSmallerNumber(输入-1);
}
}
大提示:
f(2,5) = 2 + f(3,5) + 2;
f(3,5) = 3 + f(4,5) + 3;
f(4,5) = 4 + f(5,5) + 5;
f(5,5) = 5;
所以
{a+f(a+1,b)+a如果a此示例还处理第一个参数大于第二个参数的情况
printUpAndDown(1,5)
=123454321
printUpAndDown(5,1)
=54325
printUpAndDown(5,5)
=5
public static void printUpAndDown(int i, int j)
{
System.out.print(i + " ");
if (i == j) return;
int intToPass = (i > j) ? i - 1 : i + 1;
printUpAndDown(intToPass, j);
System.out.print(i + " ");
}
我们不允许使用循环、全局变量或数组。
:您可以编码吗?开始并将代码带到您结束的地方,然后肯定有人可以帮助您完成它您确定f(2,5)
是2 3 4 4 2 1
而不是f(2,5)=2 3 4 5 4 3 2
?这个函数返回什么类型?哦,是的,序列是2 3 4 5 4 3 2。我甚至不知道如何启动程序代码。我完全被难住了。我一直在沿着这条轨道思考,但我无法让它工作,我想我可以让它工作。非常感谢。
public static void printUpAndDown(int i, int j)
{
System.out.print(i + " ");
if (i == j) return;
int intToPass = (i > j) ? i - 1 : i + 1;
printUpAndDown(intToPass, j);
System.out.print(i + " ");
}