Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Решите пожалуйста, задачу на языке программирования С#

Ольга Левченко Знаток (276), на голосовании 3 недели назад
В некоторой стране используются денежные купюры достоинством в 1, 2, 4, 8, 16, 32 и 64. Дано натуральное число n. Как наименьшим количеством таких денежных купюр можно выплатить суммы n, n + 1, …, n + 10 (указать количество каждой из используемых для выплаты купюр)? Предполагается, что имеется достаточно большое количество купюр всех достоинств.
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (456586) 1 месяц назад
Офигенно сложная задачка в 3 строчки:
 int n = int.Parse(Console.ReadLine()); 
for (int i = 0; i <= 10; i++)
{
int m = n + i;
int k = m / 64;
int p = 32;
while (p > 0)
{
k += (m & p) == 0 ? 0 : 1;
p >>= 1;
}
Console.WriteLine($"{m}: {k}");
}
Вывод количества купюр добавь самостоятельно (спойлер: только купюр по 64 может быть несколько, остальных - не более 1).
Терр Онтал Мудрец (13417) 1 месяц назад
Задача алгоритмически неразрешима
Похожие вопросы