Не могу найти оптимальный алгоритм решения перебора массива с умножением (Важно чтобы работал быстро)
Пример медленного решения:
int d =5;
for (int i = 1; i <=d ; i++) {
for (int j = i; j <=d ; j++) {
for (int k = j; k <d ; k++) {
System.out.println(i+"*"+j+"*"+k+"="+(i*j*k));
}
}
}
Вывод:
1*1*1=1
1*1*2=2
1*1*3=3
1*1*4=4
1*2*2=4
1*2*3=6
1*2*4=8
1*3*3=9
1*3*4=12
1*4*4=16
2*2*2=8
2*2*3=12
2*2*4=16
2*3*3=18
2*3*4=24
2*4*4=32
3*3*3=27
3*3*4=36
3*4*4=48
4*4*4=64
Если d = 100 это займет 0.5 секунды, d может быть 100 12 раз подряд.
Еще бы было замечательным не перебирать с одинаковыми результатами.
Может кто-то направит на алгоритм, инфу, книгу. Не знаю даже как обозвать данный метод чтобы погуглить.
Илья Рогов
18 уровень
Поиск алгоритма для 1,2....9 * 1,2...9 * 1,2....9 без повторений
Новый
Комментарии
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
У этой страницы еще нет ни одного комментария