Главная

Искусство Программирования. Решение задач

Искусство Программирования. Решение задач

Здравствуй, Дональд Кнут!

Я решил проштудировать книгу Дональда Кнута "Искусство Программирования" от корки до корки, с такой же дотошностью, с которой она была написана. В частности, мне показалось неплохой идеей делать все упражнения и публиковать результаты. Для начала я буду решать упражнения самостоятельно, а потом буду просматривать интернет в поисках более изящных решений, проверяя также себя на предмет ошибок.

Итак, для начала сделаем упражнения из примечаний к упражнениям. Это самая первая задачка из книги Дональда Кнута "Искусство программирования", по идее должна решаться моментально без проблем.

Первые два упражнения пропустим и приступим сразу к 3 упражнению.

Упражнение 3: докажите, что \(13^3 = 2197\). Обобщите ответ.

Ответ: процедура возведения степень есть перемножение числа само на себя некоторое количество раз, заданное степенью, в которое нужно возвести число. В данном случае мы должны перемножить \(13*13*13\). Проведя эту операцию, я действительно получаю результат: 2197. Также можно пойти и обратным путем. Для начала необходимо доказать, что 2197 делится на 13.

Признак делимости на 13: число делится на 13, когда число десятков, сложенное с учетверенным числом единиц, делится на 13.

\[219+(4*7) = 219+28 = 247\]

\[24+(4*7) = 24+28 = 52\]

\[{52 \over 13} = 4\]

Итак, число 2197 действительно делится на 13. Разделим 2197 на 13 и получим: 169. Разделим 169 на 13 и получим: 13. Могу также отметить, что 13 - это простое число, хотя это не важно для решения этой задачи.

Роберт Фатхуллин

Статья Роберт Фатхуллин

Backend Developer