Форум программистов, компьютерный форум CyberForum.ru

Задача про новогодний подарок - C++

Восстановить пароль Регистрация
 
LifeWind
 Аватар для LifeWind
4 / 4 / 1
Регистрация: 13.09.2012
Сообщений: 36
23.10.2012, 19:15     Задача про новогодний подарок #1
Даны целые неотрицательные A, X, Y, Z. Известно, что в каждые новогодний подарок необходимо положить A конфет, одно или два яблока, одну или две груши, причем количество фруктов в подарке должно равняться трем. Какое максимальное количество подарков можно скомплектовать из X конфет, Y яблок и Z груш.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2012, 19:15     Задача про новогодний подарок
Посмотрите здесь:

Задача про матрицу C++
C++ Задача про кузнечиков
Задача про температуру C++
Задача про монеты C++
C++ задача про N ферзей
Задача про календарь C++
C++ Задача про дату!
C++ Задача про графы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
doctor_lecter
 Аватар для doctor_lecter
279 / 152 / 8
Регистрация: 22.09.2012
Сообщений: 283
23.10.2012, 19:45     Задача про новогодний подарок #2
n1 - количество подарков 1 типа, n2 - второго.
F(n1, n2) = n1 + n2 - целевая функция, которую нужно максимизировать.
Система ограничений:
An1 + An2 <= X
n1 + 2n2 <= Y
2n1 + n2 <= Z
n1 >= 0, n2 >= 0

Решить можно симплекс методом, но нужно учитывать что решения могут быть не целыми. Поэтому их нужно либо округлять и при этом проверять чтобы не нарушались ограничения, либо существуют модификации симплекс метода, позволяющие находить целые решения.
De_N
16 / 14 / 2
Регистрация: 15.10.2012
Сообщений: 33
23.10.2012, 20:10     Задача про новогодний подарок #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdio.h"
 
unsigned int A, X, Y, Z;
unsigned int konf, pod=0;
 
main()
{
// Ввод данных
printf("A = ");
scanf("%d",&A);
printf("X = ");
scanf("%d",&X);
printf("Y = ");
scanf("%d",&Y);
printf("Z = ");
scanf("%d",&Z);
 
 
// Вычисления
konf = X/A;  // Ограничение по конфетам
while (1)
{
if (((Y>=2)&&(Z>=1))||((Y>=1)&&(Z>=2)))
{
 if (Y>Z)
 {Y=Y-2; Z=Z-1;}
 else
 {Y=Y-1; Z=Z-2;}
 pod++;
}
else
{break;}
}
if (konf<pod) {pod = konf;}
// Вывод
printf("\n%d",pod);
 
scanf("%d", &A); // чтобы увидеть результат
}
Комментарии и разъяснения, полагаю, излишни.
Yandex
Объявления
23.10.2012, 20:10     Задача про новогодний подарок
Ответ Создать тему
Опции темы

Текущее время: 15:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru