Пусть b - количество быков, k - количество коров, t - количество телят. Тогда можно составить систему уравнений
Два уравнения, три неизвестных. Придется решать перебором вариантов. Но прямой перебор - это неинтересно. Попробуем оптимизировать. На 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.
Я уже отвечал на подобный вопрос. Эту колдунью зовут Кодировка КОИ-8. Таблица кодирования: А-Ю, Б-А, В-Б, Г-Ц, Д-Д, Е-Е, Ж-Ф, З-Г, И-Х, Й-И, К-Й, Л-К, М-Л, Н-М, О-Н, П-О, Р-П, С-Я, Т-Р, У-С, Ф-Т, Х-У, Ц-Ж, Ч-В, Ш-Ь, Щ-Ы, Ъ-З, Ы-Ш, Ь-Э, Э-Щ, Ю-Ч, Я-Ъ, Ё-╦ Таблица построена так. Слева стоят буквы по русскому алфавиту, а справа русские буквы, соответствующие английскому алфавиту. @ - Ю (код 40), A - А (41), B - Б, C - Ц, D - Д, E - E, F - Ф, и т.д. Буква Ё - 33-ья в алфавите, она выбивается из ряда в 32 буквы, поэтому превращается не в букву, а в элемент псевдографики. И еще меняется регистр, 1-ая буква маленькая, остальные большие. Эти имена по порядку: Глеб, Степан, Иван, Фёдор, Кирилл, Леонид