本周我的在线 CS1 课程的作业是创建一个程序,该程序使用多种方法来打印倒三角形。我已经创建了教授概述的方法,但发现自己完全陷入了以相反顺序打印递归的过程。起初我根本无法掌握递归。看起来 For 循环可以用更少的抽象来完成同样的工作。在阅读了更多有关该主题的内容后,我觉得我对它的工作原理有了更好的理解,但不一定是为什么使用它。这就是我现在所拥有的:
public class RecursiveTriangle {
public static void main(String[] args) {
int sideLength = getLength();
String trianglePattern = getPattern();
printTriangle(sideLength, trianglePattern);
}
public static int getLength ()
{
Scanner scr = new Scanner(System.in);
System.out.print("Enter a number: ");
int sideLength = scr.nextInt();
return sideLength;
}
public static String getPattern()
{
Scanner scr = new Scanner(System.in);
System.out.print("Enter a character: ");
String trianglePattern = scr.nextLine();
return trianglePattern;
}
public static void printTriangle(int sideLength, String trianglePattern)
{
if (sideLength < 1){return;}
printTriangle(sideLength - 1, trianglePattern);
for (int i = 0; i < sideLength; i++)
{
System.out.print(trianglePattern);
}
System.out.println();
}
}
当前迭代以“正常”顺序打印出一个三角形。输入 int(5) 和 String ("AA") 会产生:
A
AA
AAA
AAAA
AAAAA
程序的最终迭代应该产生:
AAAAA
AAAA
AAA
AA
A
我希望在这里得到一些帮助。我很乐意阅读/观看有关递归的推荐材料,因为到目前为止,这是我发现具有挑战性的第一个概念。
呼如林
慕容3067478
ITMISS
相关分类