Самый дорогой букет - C (СИ)

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

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

Я не могу решить задачу. На День учителя Вася решил купить букет цветов. В магазине продаются ромашки по A рублей за штуку и гладиолусы по B рублей за штуку (A < B). У Васи есть C рублей. Он хочет составить букет из максимально возможного количества цветов, и при этом потратить как можно больше денег. Другими словами, из всех букетов с максимально возможным количеством цветов он хочет выбрать самый дорогой, но не дороже C рублей. Помогите ему вычислить стоимость такого букета. Входные данные Стандартный поток ввода содержит три целых числа A, B, C (1 ≤ A < B ≤ 100, 0 ≤ C ≤ 1000). Выходные данные Выведите в стандратный поток вывода одно число - стоимость самого дорогого букета из максимального количества цветов.

Решение задачи: «Самый дорогой букет»

textual
Листинг программы
#include <iostream>
using namespace std;
int main(){
    int A, B, C, a[1001]={0}, i;
    cin>>A>>B>>C;
    if(C==0)
    {
        cout<<0;
        return 0;
    }
    a[0]=1;
    for(i=0; i<=C; i++)
        if(a[i])
        {
            if(i+A<=C)
                a[i+A]=1;
            if(i+B<=C)
                a[i+B]=1;
        }
    for(i=C; i>0; i--)
        if(a[i])
            break;
    cout<<i;
    return 0;
}

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

В этом коде:

  1. объявлены четыре переменные: A, B, C и a, причем a - это массив размером 1001;
  2. сначала вводятся значения переменных A, B и C с помощью функции cin;
  3. проверяется, равно ли значение переменной C нулю. Если это так, то выводится 0 и программа завершается;
  4. инициализируется первый элемент массива a значением 1;
  5. затем в цикле, который выполняется C раз, проверяется, есть ли в массиве a[i] значение 1. Если это так, то в цикле, который выполняется A раз, и в цикле, который выполняется B раз, присваивается значение 1 элементам массива a, находящимся на смещениях i+A и i+B;
  6. затем в цикле, который выполняется от C до 1, проверяется, есть ли в массиве a[i] значение 1. Если это так, то вычисляется i и выводится на экран;
  7. программа завершается.

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


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

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

9   голосов , оценка 3.556 из 5
Похожие ответы