Чему научился:
Искать разные способы решения одной задачи.
Что было сложным:
Минимизировать время работы программы, не изменяя алгоритма. Пока не смог.
Комментарии:
Со скоростью работы программы осталось много непонятных моментов, с которыми постараюсь разобраться. В частности, при вычислении НОД(33333333, 1111) программа зависает, если вместо if (a>b) return NOD(a-b,b); написать { long c = a-b; ... if (a>b) return NOD(c,b);
Я видел этот вариант, но ведь это уже принципиально другой алгоритм, резко сокращающий число ходов... А мне было интересно просто максимально ускорить все вычисления, АБСОЛЮТНО не меняя алгоритм. Да и просто сама причина такого поведения не понятна. Вроде, для переполнения long нужны гораздо большие значения...
Научился: Продолжаю тренироваться в рекурсии Трудности: К сожалению, для входных данных 33333333 и 1111 робот шарп падает с таймаутом. К слову, VS2013 тоже выдаёт StackOverflow. Если есть идеи, почему так происходит, прошу указать мне на мою ошибку. нет таковых
Научился: Никогда не находила ранее общи знаменатель подобным образом. Трудности: Не сложно, но по времени затратно, сама разбиралась, как решить. Хороший урок для закрепления понимания работы с рекурсией.