У вас есть четыре символа, буквы от A до D. Для каждой позиции у вас есть четыре возможных символа. Итак, для слов длины 1 есть 4 комбинации. Для слов длины две комбинации 4*4
, для слов длины три комбинации 4*4*4
и так далее. Таким образом, вы ничего не делаете, кроме go через все числа с основанием 4. Только вместо 0,1,2,3 у вас есть A, B, C, D. Чтобы вывести желаемый результат, просто вычислите 4^wordLength
и go от 0 до этого результата. Преобразуйте каждое число в этом диапазоне в его представление по основанию 4. Замените 0 на A, 1 на B, 2 на C и 3 на D
import java.util.Scanner;
public class NewClass {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
System.out.print("Enter desired 'word' length: ");
int wordLength = scnr.nextInt();
for (int i = 0; i < upperLimit(wordLength); i++){
String base4 = String.format("%"+wordLength+"s", Integer.toString(i,4)).replace(' ','0');
String out = base4.replace('0','A').replace('1','B').replace('2','C').replace('3','D');
System.out.println(out);
}
}
public static int upperLimit(int x){
return (int) Math.pow(4, x);
}
}