Conversation
EvgeneZhurov
left a comment
There was a problem hiding this comment.
Просьба исправить замечания и продолжим общение по существу.
| return 0; | ||
| int lcm = -1; | ||
|
|
||
| if (m > 0 && n > 0) { |
There was a problem hiding this comment.
в прошлой задаче писал, продублирую: Обратите внимание, что код во всех методах из-за проверки существования треугольника находится во втором уровне вложенности. Код будет читаться лучше, если вначале метода делать валидацию и делать return, если m > 0 && n > 0 вернет false (а еще лучше развернуть логическое условие на противоположное, чтобы не пришлось использовать !), а потом без второго уровня вложенности писать тело метода.
| int maxCounter = 0; | ||
| int minCounter = 0; | ||
|
|
||
| if (Arrays.asList(Arrays.stream(maxNumberFactors).boxed().toArray()).contains(uniqueNumber)) { |
There was a problem hiding this comment.
без стримов и других тем, выходящих за рамки курса пожалуйста.
| return 0; | ||
| int gcd = -1; | ||
|
|
||
| if (m > 0 && n > 0) { |
There was a problem hiding this comment.
Прелесть данного алгоритма заключается в том, что его можно написать в две строки через рекурсию. Можно в данном методе не делать валидацию и не возвращать -1, при желании это можно сделать отдельно не в этом методе, до вызова. Суть:
если n == 0 верните m, если нет, то верните рекурсию алгоритма Евклида с параметрами: n, m % n
There was a problem hiding this comment.
Исправил. Добавил рекурсивный метод getGcdByEuclideanAlgorithmCalculation, в котором происходят вычисления, валидация находится в методе getGcdByEuclideanAlgorithm, в котором также идет обращение к рекурсивному методу. Вызов происходит к методу getGcdByEuclideanAlgorithm
| } | ||
|
|
||
| static int[] getNumberFactors(int number) { | ||
| StringBuilder numberFactorsStringBuilder = new StringBuilder(); |
There was a problem hiding this comment.
Использовать строки для решения математических задач... Это точно требуется? Думаю эффективнее не уходить от математики.
No description provided.