1

Тема: Код для підрахунку чисел

Доброго дня, потрібен код, пояснюю, в коді мають зберігатись багато товарів кафе, з цінами, товар = ціна,
На ввід дається число, потрібно щоб програма на виході писала які товари потрібно використати щоб їх сума співпадала з сумою яка вводиться, початок коду написав, а цикл не можу зрозуміти як написати, допоможіть хто зможе.

#include <iostream>
using namespace std;
int main() {
    int a, k = 0;
    int blanc_pl = 69;
    int blanc05 = 47;
    int blanc03 = 30;
    int lviv_pl = 42;
    int lviv03 = 20;
    int lviv05 = 30;
    int dunk03 = 25;
    int dunk05 = 39;
    int sidr = 59;
    int carlsberg = 48;
    int tuborg = 47;
    cin >> a;
    while (a % k == 0){
        
    }
    return 0;
}

2

Re: Код для підрахунку чисел

Можна навіть щоб декілька товарів одного типу, головне щоб сума всіх виведених товарів співпадала з введеним числом

3

Re: Код для підрахунку чисел

Щоб зручно було працювати з купою однотипних об'єктів, скажімо товарів, треба їх зібрати до масиву. Але задача явно не для людини, яка цього не знає. Перебір досить нетривіальний.

4

Re: Код для підрахунку чисел

Мабуть, найлегше рекурсивною функцією, десь так (псевдокодом):

товари_на_суму(товари, сума):
    якщо кількість товарів = 1 
        якщо сума ділиться на ціну 
            повернути {довжина/ціна товару} 
        інакше 
            повернути {}
    інакше
        для i від 0 до (сума/ціна першого товару)
            відповідь = товари_на_суму(товари без першого, сума - (ціна першого товару) * i )
            якщо відповідь != {}
                повернути {i} + {відповідь}
    повернути {}

{} - масив

Подякували: Tarpan871

5 Востаннє редагувалося Droid 77 (13.01.2023 20:48:14)

Re: Код для підрахунку чисел

koala написав:

Щоб зручно було працювати з купою однотипних об'єктів, скажімо товарів, треба їх зібрати до масиву. Але задача явно не для людини, яка цього не знає. Перебір досить нетривіальний.

Так скоріше за все і мається на увазі спарсити певні комірки бази до масиву для подальшої обробки.

P. S.
Тільки от в деяких вишах спочатку задають завдання які мали би парсити бази даних.
А вже в наступному семестрі починають вивчати безпосередньо бази даних. Принаймні в мій час саме так і викладали ))

6

Re: Код для підрахунку чисел

А хтось за гроші зробить?)

7

Re: Код для підрахунку чисел

Переніс тему до відповідного розділу

Подякували: danza.v341

8

Re: Код для підрахунку чисел

Кажіть ціну, може хтось погодиться.

9

Re: Код для підрахунку чисел

Пропоную за роботу 500 грн, більш детальніше можу пояснити в особистому чаті

Подякували: Tarpan871

10

Re: Код для підрахунку чисел

Нейромережа зробила безкоштовно за 5 секунд, я вражений просто...

Подякували: leofun01, Tarpan872

11

Re: Код для підрахунку чисел

це класична задача про валізу.

12

Re: Код для підрахунку чисел

ur_naz написав:

це класична задача про валізу.

Не зовсім. У задачі про валізу треба набрати не більше заданої ваги, щоб була максимальна цінність. А тут треба набрати рівно потрібну суму.

13

Re: Код для підрахунку чисел

видалив московитський спам - модератор 

Ось код який створила нейросетьмережа

14

Re: Код для підрахунку чисел

Ще раз зробите так - матимете бан за п.1.1 Правил

15

Re: Код для підрахунку чисел

#include <iostream>
#include <vector>
#include <string>
using namespace std;

// Структура для збереження пари числа та його назви
struct Number {
    int value;
    string name;
};

void findCombinations(vector<Number>& numbers, int target, vector<Number>& combination, int start) {
    if (target == 0) {
        cout << "Combination: ";
        for (int i = 0; i < combination.size(); i++) {
            cout << combination[i].name << " (" << combination[i].value << ")" << endl;
        }
        return;
    }
    for (int i = start; i < numbers.size(); i++) {
        if (numbers[i].value <= target) {
            combination.push_back(numbers[i]);
            findCombinations(numbers, target - numbers[i].value, combination, i);
            combination.pop_back();
        }
    }
}

int main() {
    vector<Number> numbers = {{47, "forty-seven"}, {30, "thirty"}, {180, "one hundred eighty"}};
    int target;

    cout << "Enter target number: ";
    cin >> target;

    vector<Number> combination;
    findCombinations(numbers, target, combination, 0);

    return 0;
}

Ось код який створила нейромережа за 5 секунд