Предмет: Информатика,
автор: Qantos
C++ Калькулятор
Калькулятор
Имеется калькулятор, который выполняет три операции:
прибавить к числу X единицу;
умножить число X на 2;
умножить число X на 3.
Определите, какое наименьшее число операций необходимо для того, чтобы получить из числа 1 заданное число N.
Входные данные
Программа получает на вход одно число, не превосходящее 106.
Выходные данные
Требуется вывести одно число: наименьшее количество искомых операций.
Примеры
Ввод
Вывод
32718
17
1
0
5
3
AyseKoseoglu:
azerice danissana
Ответы
Автор ответа:
1
#include <iostream>
using namespace std;
int main()
{
long n, answer = 0;
cin >> n;
while (n != 1)
{
if (n % 3 == 0)
{
n /= 3;
answer++;
}
else if (n % 2 == 0)
{
n /= 2;
answer++;
}
else
{
n--;
answer++;
}
}
cout << answer;
}
P. S. обрати внимание на вложения
Приложения:
(((10//2)-1)//2)//2 - 4 действия, хотя короче (10-1)//3//3 - 3 действия.
Похожие вопросы
Предмет: Қазақ тiлi,
автор: карина484
Предмет: Русский язык,
автор: ярик103
Предмет: Русский язык,
автор: иван20052006
Предмет: Литература,
автор: SKARP17868