Есть такой код
public class MyClass {
public static void main(String args[]) {
char password[]={'a','b','c'};
char abc[] = new char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};//множество допустимых символов
int size = 3;//кол-во элементов
int arr[] = new int[size];//массив для хранения текущего варианта множества
outer: while(true){//вечный цикл
//вывод варианта множества на экран
for(int ndx : arr){
System.out.print(abc[ndx]);
}
System.out.println();
int i = size - 1; //ставим курсов в самую правую ячейку
while(arr[i] == abc.length - 1){ //движемся влево, если ячейка переполнена
arr[i] = 0; //записываем в ячейку 0, т.к. идет перенос разряда
i--; //сдвиг влево
//если перенос влево невозможен, значит перебор закончен
if(i < 0)break outer;
}
arr[i]++;//увеличиваем значение ячейки на единицу
}
}}
Мне задали чтобы я сравнил мой массив password с генерацией всех символов, здесь у меня генерируются все комбинации по 3 символа, можно менять размер int size на любой нужный размер. Так вот я ввел свой массив пароля и мне нужно сравнить его со всеми комбинациями и если есть совпадения то остановить программу, и еще засечь время выполнения этого сравнения через. Уже сижу целую неделю не могу допереть. Кто нибудь знает как делать))
Примерно так:
public static void main(String[]args){
char password[]={'a','d','d'};
char abc[] = new char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};//множество допустимых символов
int size = 3;//кол-во элементов
int arr[] = new int[size];//массив для хранения текущего варианта множества
String varPw="";
outer: while(true){//вечный цикл
if(varPw.length()==size){
if(varPw.equals(String.valueOf(password))){
System.out.println("password = " + varPw);
break;
}
}
varPw = "";
//вывод варианта множества на экран
for(int ndx : arr){
varPw += abc[ndx];
System.out.print(abc[ndx]);
}
System.out.println();
int i = size - 1; //ставим курсов в самую правую ячейку
while(arr[i] == abc.length - 1){ //движемся влево, если ячейка переполнена
arr[i] = 0; //записываем в ячейку 0, т.к. идет перенос разряда
i--; //сдвиг влево
//если перенос влево невозможен, значит перебор закончен
if(i < 0)break outer;
}
arr[i]++;//увеличиваем значение ячейки на единицу
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
При чтении байтов из файла с использовании RandomAccessFile нормально выводится в консоль только латиницаЧтоб выводилась нормально кирилица необходимо...
Что означает синтаксис {{ }}(две двойных фигурных скобки) в Java?