Тернарные операции: разменять n, используя 50,10,5,3,1- копеечные монеты, чтобы количество было минимальным - C (СИ)
Формулировка задачи:
Здравствуйте, занимаюсь сессией и возникла проблема с одним заданием на Тернарные операции , как реализовать это с математической точки зрения я понимаю , но с программной - нет :
Записать тернарную операцию для решения данной задачи. Не использовать условный оператор. Составлять программу не нужно.
Дано n - сумма в копейках. Каким образом следует разменять n, используя 50,10,5,3,1- копеечные монеты, чтобы количество монет было минимальным.
Очень заинтересовала данная задача одновременно своей простотой в понимании и сложностью в реализации)).
Буду очень признателен за помощь.
З.ы. Информацию по Тернарным операциям читал - но как реализовать данную задачу не понял. Решение задачи: «Тернарные операции: разменять n, используя 50,10,5,3,1- копеечные монеты, чтобы количество было минимальным»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> int main(int argc, char **argv) { int n = atoi(argv[1]), coins = 0, c; while (n > 0) { c = (n >= 50 ? 50 : (n >= 10 ? 10 : (n >= 5 ? 5 : (n >= 3 ? 3 : 1)))); n -= c; coins += 1; printf("%d) %d\n", coins, c); } printf("total coins = %d\n", coins); return EXIT_SUCCESS; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Объявляем функцию main, которая принимает аргументы командной строки
- Инициализируем переменную n значением первого аргумента командной строки (предполагается, что это число)
- Инициализируем переменную coins значением 0 (количество использованных монет)
- Инициализируем переменную c значением 0 (текущая монета)
- Запускаем цикл while, который выполняется до тех пор, пока n больше 0
- Внутри цикла определяем значение переменной c как наибольшую монету, которую можно использовать (50, 10, 5, 3 или 1)
- Вычитаем значение переменной c из n
- Увеличиваем значение переменной coins на 1 (увеличивается количество использованных монет)
- Выводим на экран значения переменных coins и c
- Повторяем шаги 7-10 для каждой итерации цикла while
- Выводим на экран общее количество использованных монет (переменная coins)
- Возвращаем EXIT_SUCCESS (код завершения работы программы)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д