gpt4 book ai didi

java - 递归中的无限循环

转载 作者:行者123 更新时间:2023-12-02 04:21:23 25 4
gpt4 key购买 nike

我正在编写代码来输出以下模式:

000000000X
00000000XX
0000000XXX
000000XXXX
00000XXXXX
0000XXXXXX
000XXXXXXX
00XXXXXXXX
0XXXXXXXXX

(每一行应该是一个接一个。我不太确定如何在论坛上显示该模式......抱歉)

我应该在代码中使用递归循环,但我最终陷入了无限循环,我真的不明白为什么..(可以肯定我实际上从未使用过递归循环)。这是我的代码:

class Recursion {
//recursion should stop after 9 attempts
static int stopindex = 9;

public static void main(String[] args) {
//a=number of "O"s and b=number of "X"s
int a = 9;
int b = 1;
recursion(a, b);
}
public static void recursion(int a, int b) {

//start of recursion at index 1
int startindex = 1;

//stop condition of recursion
if (startindex == stopindex)
return;

//printing of pattern
for (int i = a; i > 0; i--) {
System.out.print("O");
}
for (int j = 0; j < b; j++) {
System.out.print("X");
}
System.out.println();

--a;
++b;
++startindex;
recursion(a, b);
}
}

最佳答案

你的算法有点偏离,你不应该有静态变量,你不应该改变a,以及你的第一个for循环条件 - 我认为你想要,

public static void recursion(int a, int b) {
// stop condition of recursion
if (a == b) return;

// printing of pattern
for (int i = a - b; i > 0; i--) {
System.out.print("O");
}
for (int j = 0; j < b; j++) {
System.out.print("X");
}
System.out.println();

// --a;
++b; // <-- this could be done in the recursion call below,
recursion(a, b);
// recursion(a, ++b); // <-- like that.
}

输出为

OOOOOOOOX
OOOOOOOXX
OOOOOOXXX
OOOOOXXXX
OOOOXXXXX
OOOXXXXXX
OOXXXXXXX
OXXXXXXXX

关于java - 递归中的无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25396250/

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