Skip to content

Task6#802

Open
quperino wants to merge 2 commits intoKFalcon2022:masterfrom
quperino:Task6
Open

Task6#802
quperino wants to merge 2 commits intoKFalcon2022:masterfrom
quperino:Task6

Conversation

@quperino
Copy link

@quperino quperino commented Jan 1, 2025

No description provided.

@EvgeneZhurov EvgeneZhurov self-assigned this Jan 3, 2025
Copy link
Collaborator

@EvgeneZhurov EvgeneZhurov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Просьба исправить замечания и продолжим общение по существу.

return 0;
int lcm = -1;

if (m > 0 && n > 0) {
Copy link
Collaborator

@EvgeneZhurov EvgeneZhurov Jan 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

в прошлой задаче писал, продублирую: Обратите внимание, что код во всех методах из-за проверки существования треугольника находится во втором уровне вложенности. Код будет читаться лучше, если вначале метода делать валидацию и делать return, если m > 0 && n > 0 вернет false (а еще лучше развернуть логическое условие на противоположное, чтобы не пришлось использовать !), а потом без второго уровня вложенности писать тело метода.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправил.

int maxCounter = 0;
int minCounter = 0;

if (Arrays.asList(Arrays.stream(maxNumberFactors).boxed().toArray()).contains(uniqueNumber)) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

без стримов и других тем, выходящих за рамки курса пожалуйста.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Заменил на циклы

return 0;
int gcd = -1;

if (m > 0 && n > 0) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Прелесть данного алгоритма заключается в том, что его можно написать в две строки через рекурсию. Можно в данном методе не делать валидацию и не возвращать -1, при желании это можно сделать отдельно не в этом методе, до вызова. Суть:
если n == 0 верните m, если нет, то верните рекурсию алгоритма Евклида с параметрами: n, m % n

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправил. Добавил рекурсивный метод getGcdByEuclideanAlgorithmCalculation, в котором происходят вычисления, валидация находится в методе getGcdByEuclideanAlgorithm, в котором также идет обращение к рекурсивному методу. Вызов происходит к методу getGcdByEuclideanAlgorithm

}

static int[] getNumberFactors(int number) {
StringBuilder numberFactorsStringBuilder = new StringBuilder();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Использовать строки для решения математических задач... Это точно требуется? Думаю эффективнее не уходить от математики.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Изменил

@quperino quperino requested a review from EvgeneZhurov January 6, 2025 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments