Тернарные операции: разменять 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;
}

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

  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
Похожие ответы