Тернарные операции: разменять n, используя 50,10,5,3,1- копеечные монеты, чтобы количество было минимальным - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, занимаюсь сессией и возникла проблема с одним заданием на Тернарные операции , как реализовать это с математической точки зрения я понимаю , но с программной - нет :
Записать тернарную операцию для решения данной задачи. Не использовать условный оператор. Составлять программу не нужно. Дано n - сумма в копейках. Каким образом следует разменять n, используя 50,10,5,3,1- копеечные монеты, чтобы количество монет было минимальным.
Очень заинтересовала данная задача одновременно своей простотой в понимании и сложностью в реализации)). Буду очень признателен за помощь. З.ы. Информацию по Тернарным операциям читал - но как реализовать данную задачу не понял.

Решение задачи: «Тернарные операции: разменять n, используя 50,10,5,3,1- копеечные монеты, чтобы количество было минимальным»

textual
Листинг программы
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main(int argc, char **argv) {
  5.     int n = atoi(argv[1]), coins = 0, c;
  6.     while (n > 0) {
  7.         c = (n >= 50 ? 50 : (n >= 10 ? 10 : (n >= 5 ? 5 : (n >= 3 ? 3 : 1))));
  8.         n -= c;
  9.         coins += 1;
  10.         printf("%d) %d\n", coins, c);
  11.     }
  12.     printf("total coins = %d\n", coins);
  13.     return EXIT_SUCCESS;
  14. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Объявляем функцию main, которая принимает аргументы командной строки
  3. Инициализируем переменную n значением первого аргумента командной строки (предполагается, что это число)
  4. Инициализируем переменную coins значением 0 (количество использованных монет)
  5. Инициализируем переменную c значением 0 (текущая монета)
  6. Запускаем цикл while, который выполняется до тех пор, пока n больше 0
  7. Внутри цикла определяем значение переменной c как наибольшую монету, которую можно использовать (50, 10, 5, 3 или 1)
  8. Вычитаем значение переменной c из n
  9. Увеличиваем значение переменной coins на 1 (увеличивается количество использованных монет)
  10. Выводим на экран значения переменных coins и c
  11. Повторяем шаги 7-10 для каждой итерации цикла while
  12. Выводим на экран общее количество использованных монет (переменная coins)
  13. Возвращаем EXIT_SUCCESS (код завершения работы программы)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы