gpt4 book ai didi

java - 递归方法如何打印形状

转载 作者:行者123 更新时间:2023-12-01 10:15:56 26 4
gpt4 key购买 nike

<小时/>

我想知道递归方法如何打印一个由具有给定“宽度”的较小 X 组成的大 X,输入数字保证为奇数。

“宽度”是 X 沿一条线大 X 的长度(数量)。

宽度输入数字 =3 的 X 的示例该方法将打印这个形状!

 X X

X

X X

我尝试解决这个问题,但没能成功这里有人可以帮助我吗..在java代码中,

这是我的代码,他运行良好,但当 numberinput=7 或 5 时打印错误

 public static String shape(String i,int  numberinput) {   
//error check, not working for even numbers
if(numberinput%2 == 0)
return null;

//terminating condition, stop recursion when this occurs.
if(numberinput == 1)
return "X";

else

return "X"+" "+i+"\n" +" "+shape(" "+i,numberinput-2)+" "+"\n"+i+" "+"X";
}

当 numberinput=5 时他打印此内容

       X X

X X

X

X X

X X

最佳答案

有效的递归方法应该由两部分组成。

  1. 递归调用(调用自身来完成部分工作)
  2. 终止条件(停止递归的条件)

您有一个递归调用,但没有终止条件。因此,直到填满整个堆栈并导致异常时,递归才会停止。因此,您应该在递归方法中包含终止条件。

示例实现可能如下所示。

public static String shap(String i, int numberinput) {
//error check, not working for even numbers
if(numberinput%2 == 0)
return null;

//terminating condition, stop recursion when this occurs.
if(numberinput == 1)
return "X";

//recursion, call recursive until terminating condition occurs.
return "X" + i + shap(i, numberinput-2) + i + "X";
}

关于java - 递归方法如何打印形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com