я сталкиваюсь с трудностями при коррекции потока этого алгоритма ..Как я могу контролировать поток рекурсивных методов?
для String h = "##"
этого алгоритм дает правильный вывод, который:
ReemReem
ReemRawan
RawanReem
RawanRawan
и String h = "00"
этому алгоритм дает правильный вывод, который:
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.
.
.
98
99
и String h = "#0"
этот алгоритм дает правильный вывод, который:
Reem0
Reem1
Reem2
Reem3
Reem4
Reem5
Reem6
Reem7
Reem8
Reem9
Rawan0
Rawan1
Rawan2
Rawan3
Rawan4
Rawan5
Rawan6
Rawan7
Rawan8
Rawan9
но String h ="##0"
этот алгоритм дает мне неправильный вывод, который:> ReemReem0
ReemReem1
ReemReem2
ReemReem3
ReemReem4
ReemReem5
ReemReem6
ReemReem7
ReemReem8
ReemReem9
ReemRawanReem
ReemRawanRawan
RawanReem0
RawanReem1
RawanReem2
RawanReem3
RawanReem4
RawanReem5
RawanReem6
RawanReem7
RawanReem8
RawanReem9
RawanRawanReem
RawanRawanRawan
, а также для string h ="#0#"
этот алгоритм дает неправильный вывод, который:
Reem0Reem
Reem0Rawan
Reem10
Reem11
Reem12
Reem13
Reem14
Reem15
Reem16
Reem17
Reem18
Reem19
Reem20
Reem21
Reem22
Reem23
Reem24
Reem25
Reem26
Reem27
Reem28
Reem29
Reem30
Reem31
Reem32
Reem33
Reem34
Reem35
Reem36
Reem37
Reem38
Reem39
Reem40
Reem41
Reem42
Reem43
Reem44
Reem45
Reem46
Reem47
Reem48
Reem49
Reem50
Reem51
Reem52
Reem53
Reem54
Reem55
Reem56
Reem57
Reem58
Reem59
Reem60
Reem61
Reem62
Reem63
Reem64
Reem65
Reem66
Reem67
Reem68
Reem69
Reem70
Reem71
Reem72
Reem73
Reem74
Reem75
Reem76
Reem77
Reem78
Reem79
Reem80
Reem81
Reem82
Reem83
Reem84
Reem85
Reem86
Reem87
Reem88
Reem89
Reem90
Reem91
Reem92
Reem93
Reem94
Reem95
Reem96
Reem97
Reem98
Reem99
Rawan0Reem
Rawan0Rawan
Rawan10
Rawan11
Rawan12
Rawan13
Rawan14
Rawan15
Rawan16
Rawan17
Rawan18
Rawan19
Rawan20
Rawan21
Rawan22
Rawan23
Rawan24
Rawan25
Rawan26
Rawan27
Rawan28
Rawan29
Rawan30
Rawan31
Rawan32
Rawan33
Rawan34
Rawan35
Rawan36
Rawan37
Rawan38
Rawan39
Rawan40
Rawan41
Rawan42
Rawan43
Rawan44
Rawan45
Rawan46
Rawan47
Rawan48
Rawan49
Rawan50
Rawan51
Rawan52
Rawan53
Rawan54
Rawan55
Rawan56
Rawan57
Rawan58
Rawan59
Rawan60
Rawan61
Rawan62
Rawan63
Rawan64
Rawan65
Rawan66
Rawan67
Rawan68
Rawan69
Rawan70
Rawan71
Rawan72
Rawan73
Rawan74
Rawan75
Rawan76
Rawan77
Rawan78
Rawan79
Rawan80
Rawan81
Rawan82
Rawan83
Rawan84
Rawan85
Rawan86
Rawan87
Rawan88
Rawan89
Rawan90
Rawan91
Rawan92
Rawan93
Rawan94
Rawan95
Rawan96
Rawan97
Rawan98
Rawan99
это мой алгоритм:
package finalprogram;
public class FinalProgram {
static String[] chars = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
static String[] names = {"Reem", "Rawan"};
static int i = 0;
static boolean flag = true;
static String h = "";
static void GenerateAllPasswordsWords(String pwd, int pos, int siz) {
if (pos < siz) {
if (h.charAt(i) == '#') {
//System.out.println("from if rule=#");
//System.out.println("i= " + i);
for (String ch1 : names) {
i++;
GenerateAllPasswordsWords(pwd + ch1, pos + 1, siz);
}
}
if (h.charAt(i) == '0') {
// System.out.println("from else rule=0");
// System.out.println("i= " + i);
for (String ch : chars) {
i++;
GenerateAllPasswordsWords(pwd + ch, pos + 1, siz);
}
}
} else {
System.out.println(pwd);
}
i = 0;
}
public static void main(String[] args) {
h = "#0#";
GenerateAllPasswordsWords("", 0, h.length());
}
}
Я знаю проблему с увеличением переменной i внутри цикла for, но я понятия не имею, как ее исправить.
отладить. Вы можете легко выяснить эту проблему. –
Я использую статическую глобальную переменную для вашего 'charAt (i)' isn't, что вы ищете, вы скорее захотите использовать параметр 'pos'. – SomeJavaGuy
Anoop-LL я знаю, где проблема, но проблема в том, как ее исправить –