Показать сообщение отдельно
Старый 10.02.2017, 00:50   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Silence Посмотреть сообщение
Т.е. Вы считаете, что для бесконечного цикла нужно писать нечто вроде:
Я знаю, что эта задача является классической.
Разбирается во всевозможных статьях. Начиная от школьных обучающих курсов до многотомника Кнута.

Сходу можно привести 4-5 решений. Где-то видал статью с 15 способами. Один из них, где время расчета меньше O(n).

рекурсию привести конечно можно.
но оговорив область применимости, влияние повторных расчетов на производительность и прочие недостатки.

while(true)...
му-ха-ха-ха!!!! хороший панк-юмор

Цитата:
Сообщение от Ace of Database Посмотреть сообщение
и написал такой джоб
да, это один из способов решения.
в памяти хранятся только два последних значения, повторных вычислений нет, время выполнения линейное.

момент, который не оговорен - целочисленные значения.
для такого случая было бы хорошо оговорить область применимости )))
в обычных системах, скорее всего, выполнение прервется по переполнению раньше, чем пользователь нажмет CTRL + BREAK/
в аксапте приведенный алгоритм, скорее всего, будет просто выдавать неправильные (отрицательные) значения начиная с некоторого числа, причем достаточно близкого к началу последовательности.

если программист не оговорил хотя бы в комментарии область применимости... и не предупредил, что она будет настолько маленькой...

с точки зрения аксапты, я бы обратил внимание, что автор использует int2str вместо strfmt. Это была бы тема для дополнительных вопросов.

свое мнение не изменил - мне бы тоже не понравилось.

Последний раз редактировалось mazzy; 10.02.2017 в 01:05.