Начинаем с конца. Нужно получить 58, поэтому с него и начнем.
58 нельзя извлечь из-под корня (извлечение корня обратно возведению в квадрат), но можно прибавить 3 (обратно вычитанию 3): 58+3=61
61 тоже не извлечь из-под корня, прибавляем 3: 61+3=64
Корень 64=8.
8+3=11
и, наконец, 11+3=14. Записываем действия в обратном порядке: сначала второе действие и т.д. Есть непонятные места?
В ответе я использовал CTIME библиотеку, если возникают вопросы почему именно её, то по нескольким причинам:
- Самое высокая скорость работы по сравнению с C++ библиотеками, а её функционал полнойстью покрывает нужды.
- В данном случаи используются достаточно прозрачные с точки зрения нейминга функции. Код будет хорошо читабилен.
К слову об указателе в функции getSecondsSinceUTCMidnight, не нужно беспокоиться об управлении памятью в данном случаи, за тебя это сделает функционал библиотеки.
Спасибо за отметку лучший ответ.
Const n=4;
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n-i do write('-');
for j:=1 to i do write(j);
for j:=i-1 downto 1 do write(j);
for j:=1 to n-i do write('-');
writeln;
end;
end.
Результат:
<span>---1---
--121--
-12321-
1234321</span>
Один цвет по сути есть символ, а всё сообщение есть просто 3-буквенное слово. Из M = 3 различных символов можно сосатвить Q = MN<span> слов длиной N = 3, т. е. 3</span>3<span> = 27 слов.
Ответ: 27</span>
def maxDigit():
return max(map(int, list(input())))