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

Cколько можно купить быков, коров и телят на 100 рублей - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.79
пока что чайник
1 / 1 / 0
Регистрация: 15.02.2011
Сообщений: 41
14.03.2011, 23:01     Cколько можно купить быков, коров и телят на 100 рублей #1
Составить алгоритм решения задачи: сколько можно купить быков, коров и телят, платя за быка 10 р., за корову - 5 р., а за теленка - 0,5 р., если на 100 р. надо купить 100 голов скота?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2011, 23:01     Cколько можно купить быков, коров и телят на 100 рублей
Посмотрите здесь:

Cколько элементов типа int можно хранить в локальной памяти? C++
C++ Напишите программу, которая по задуманному числу и предложенному варианту второго игрока считает количество «быков» и «коров».
Можно ли за A рублей купить B книг, стоимостью C и D журналов, стоимостью E? C++
C++ Вывести список товаров, стоимость которых превышает 100 000 рублей
Сколько быков, коров и телят можно купить на 100 рублей? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
14.03.2011, 23:56     Cколько можно купить быков, коров и телят на 100 рублей #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Эх, помню, было у этой задачки красивое и элегантное решение, но само решение не помню. А раз так - старые добрые уравнения всегда помогут, тупо, зато действенно)))
Итак, понятно, что
http://www.cyberforum.ru/cgi-bin/latex.cgi?10x+5y+0.5z=100;
т.е. за некоторое количество быков, коров и телят мы должны заплатить 100 рублей (с учётом цен на каждый вид скота). Также понятно, что
http://www.cyberforum.ru/cgi-bin/latex.cgi?x+y+z=100;
т.е. всего голов скота нам нужно купить сотню - не больше, не меньше.
Имеем систему:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}<br />
 &10x+5y+0.5z=100;  \\ <br />
 &x+y+z=100;  <br />
\end{cases}
Ясно, что с двумя уравнениями и тремя неизвестными единственного решения не видать. Будем искать общее решение. Выберем какой-нибудь базисный минор (примем, что на совместность систему мы уже проверили), например
http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{vmatrix}<br />
 & 10\;5 \, \\ <br />
 & 1\;\;1\, <br />
\end{vmatrix}=10-5=5\neq 0\Rightarrow переменные x и y можно выбрать главными, а переменную z - свободной. Так и сделаем:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}<br />
 & 10x+5y=100-0.5z  \\ <br />
 & x+y=100-z  <br />
\end{cases}
Выражая x и y через z, получим
http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{cases}<br />
 & x=0.9z-80  \\ <br />
 & y=180-1.9z  <br />
\end{cases}
Придавая z различные значения, получим различные решения системы. В данном случае следует учитывать, что ни одна из неизвестных не может превышать 100, а также то, что все неизвестные должны быть целыми. Исходя из этого, получаем, что при z = 90 x = 1 и y = 9. Для z это единственный вариант, однако, перевыразив каждую из неизвестных через другие, можно отыскать и другие решения.
efe
 Аватар для efe
7 / 7 / 1
Регистрация: 25.10.2010
Сообщений: 218
07.10.2011, 19:16     Cколько можно купить быков, коров и телят на 100 рублей #3
переводите на обычную Си

{
Составить алгоритм решения задачи: сколько можно купить быков, коров и телят,
платя за быка 10 руб., за корову - 5 руб., а за теленка - 0,5 руб., если
на 100 руб. надо купить 100 голов скота?}

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
program mq;
uses crt;
const
  Sum = 100;
var b,k,t : integer;
begin
  for b:=0 to (Sum div 10)+1 do
    for k:=0 to ((Sum - b*10) div 5)+1 do
    begin
      t := trunc( (Sum - b*10 - k*5) / 0.5 );
      if ((b+k+t) = 100) and ( (b*10+k*5+t*0.5)=Sum) then
        WriteLn('Быков ',b:1,' коров: ',k:1,' телят: ',t:1)
    end;
end.
silent_1991
07.10.2011, 19:21
  #4

Не по теме:

Цитата Сообщение от efe Посмотреть сообщение
переводите на обычную Си
Ага, щаз. Переобуюсь только.

efe
 Аватар для efe
7 / 7 / 1
Регистрация: 25.10.2010
Сообщений: 218
08.10.2011, 12:31     Cколько можно купить быков, коров и телят на 100 рублей #5
ладна не в тему если знаешь Си сделай я делал но не до конца

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#define sum 100
main (void)
{ 
int b, k, t;
{ for b=0 to (sum div 10)+1 do
for k=0 to ((sum -b*10) div 5)+1 do
{ t:=trunc((sum-b*10-k*5)/0.5);
if ((b+k+t)=100 && ((b*10+k*5+t*0.5)=sum) then
printf('Bykov',&b,'korov',&k,'telyat:,&t);
}
getch();
}
NanaMiT
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 6
04.10.2013, 10:59     Cколько можно купить быков, коров и телят на 100 рублей #6
Интересная задача, только жаль, тут не подробно народ описывает вот тут подробно разобрана задача и рассказано что откуда и куда http://solution.3dn.ru/publ/zadachi/zadacha/1-1-0-9
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
04.10.2013, 11:56     Cколько можно купить быков, коров и телят на 100 рублей #7
Цитата Сообщение от silent_1991 Посмотреть сообщение
http://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{vmatrix}<br />
 & 10\;5 \, \\ <br />
 & 1\;\;1\, <br />
\end{vmatrix}=10-5=5\neq 0\Rightarrow переменные x и y можно выбрать главными, а переменную z - свободной.
...
до меня следствие не дошло почему, если оно не равно 0 их можно сделать главными.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2013, 12:11     Cколько можно купить быков, коров и телят на 100 рублей
Еще ссылки по теме:

Сколькими способами можно разменять 100 000 рублей на монеты 1, 2, 5 рублей? C++
C++ Определить, сколько можно купить быков, коров и телят, если известны цены
Определить количество быков, коров и телят для покупки исходя из их цены C++

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
04.10.2013, 12:11     Cколько можно купить быков, коров и телят на 100 рублей #8
Цитата Сообщение от XRuZzz Посмотреть сообщение
до меня следствие не дошло почему, если оно не равно 0 их можно сделать главными
Начнём с определения базисного минора:
Базисным минором матрицы называется любой её ненулевой минор максимального порядка. Для того чтобы минор был базисным, необходимо и достаточно, чтобы все окаймляющие его миноры (то есть содержащие его миноры на единицу большего порядка) были равны нулю.
Следует дополнить это определение с википедии (вернее, вторую его часть) следующим образом:
Для того чтобы минор был базисным, необходимо и достаточно, чтобы все окаймляющие его миноры (то есть содержащие его миноры на единицу большего порядка) были равны нулю или вовсе не существовали.
Думаю, в изначальном определении это неявно подразумевалось (это следует из первой части определения, а точнее, из фразы "максимального порядка").
Далее, у нас есть матрица 2*3. Следовательно, базисным минором её можно взять либо минор, содержащий первый и второй столбцы, либо первый и третий, либо второй и третий. (Соответственно, главные переменные - либо x и y, либо x и z, либо y и z.) Стоит заметить, что любой из миноров можно было выбрать главным, поскольку каждый из них не является нулевым. В данном случае я просто выбрал первый попавшийся - составленный из первого и второго столбцов.
Yandex
Объявления
04.10.2013, 12:11     Cколько можно купить быков, коров и телят на 100 рублей
Ответ Создать тему
Опции темы

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