Задача №2963. Калькулятор Имеется калькулятор, который выполняет три операции: Прибавить к числу X единицу. Умножить число X на 2. Умножить число X на 3. Определите, какое наименьшее число операций необходимо для того, чтобы получить из числа 1 заданное число N. Входные данные Программа получает на вход одно число, не превосходящее 106. Выходные данные Требуется вывести одно число: наименьшее количество искомых операций. Если не трудно объяснить строчки кода с выполнением всех операций
Держи, бро) #include <iostream> #include <string> int f(int n) { if (n==1) return 0; int v; v = f(n-1); if(n%2==0) v = std::min(v,f(n/2)); if(n%3==0) v = std::min(v,f(n/3)); return v +1; } int main() { int n; std::cin>>n; std::cout << f(n); std::cin>>n; } C #include <iostream> #include <string> int f(int n) { if (n==1) return 0; int v; v = f(n-1); if(n%2==0) v = std::min(v,f(n/2)); if(n%3==0) v = std::min(v,f(n/3)); return v +1; } int main() { int n; std::cin>>n; std::cout << f(n); std::cin>>n; }