Поделитесь своими знаниями, ответьте на вопрос:
1.Определите сумму всех элементов последовательности, завершающейся числом 0. входные данные программа получает на вход последовательность целых чисел выходные данные вывести ответ на задачу 2. Дано натуральное число N. Выведие слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя! входные данные вводится натуральное число N выходные данные вывести ответ на задачу 3. Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности больше предыдущего элемента. входные данные вводится последовательность из натуральных чисел (гарантируется, что количество чисел в последовательности больше 2) выходные данные вывести ответ на задачу
Тогда можно составить систему уравнений
Два уравнения, три неизвестных. Придется решать перебором вариантов.
Но прямой перебор - это неинтересно. Попробуем оптимизировать.
На 100 рублей можно купить максимум 100/10=10 быков, или 100/5=20 коров, или 100/0.5=200 телят. Без телят не обойтись, даже 18 коров и бык - это 19 голов, а нужно 100. Подбирать нужное количество из 200 хуже, чем из 20 или 10, поэтому сделаем замену, чтобы избавиться от t.
Из второго уравнения следует, что t=100-b-k. (1)
Подставим значение t в первое уравнение:
10b+5k+0.5(100-b-k)=100;
10b+5k+50-0.5b-0.5k=100;
9.5b+4.5k=50;
19b+9k=100 ⇒ k=(100-19b)/9 (2)
Укрупненный алгоритм:
Перебираем b от 0 до 9 (10 нельзя, истратим все 100 рублей, а телят покупать надо!).
Для каждого b находим k по формуле (2). Если оно целочисленное, находим t по формуле (1). Решение найдено. Иначе перебор продолжается.
var
b,k,t:integer;
v:real;
begin
for b:=0 to 9 do
if (100-19*b) mod 9=0 then begin
k:=(100-19*b) div 9;
t:=100-b-k;
Writeln('Быков ',b,', коров ',k,', телят ',t);
break
end;
end.
Решение
Быков 1, коров 9, телят 90