Стандартний комп’ютерний шрифт Times New Roman. Виберімо за
початкову одиницю вимірювання ширини кожної написаної жирним шрифтом
великої друкованої букви ширину літери «І» (разом з естетичними «закарлюками»
вгорі та внизу, з урахуванням верхніх та нижніх горизонтальних буквених
«хвостиків»). У автора запитання вийшло приблизно таке (якщо бажаєте –
перевіряйте. Хоча він не бачить великого сенсу в тому, що ваші виміри розійдуться
з наведеними десь на 0,1-0,2): А – 2,5 Б – 1,8 В – 2,0 Г – 1,9 Ґ – 1,5 Д – 2,3
Е – 2,0 Є – 2,0 Ж – 3,2 З – 1,5 И – 2,4 І – 1,0 Ї – 1,0 Й – 2,5 К – 2,3 Л – 2,4
М – 3,0 Н – 2,4 О – 2,3 П – 2,4 Р – 1,7 С – 2,2 Т – 2,0 У – 2,5 Ф – 2,5
Х – 2,5 Ц – 2,5 Ч – 2,2 Ш – 3,4 Щ – 3,4 Ь – 1,9 Ю – 3,5 Я – 2,4
Напишіть (бажано великими друкованими літерами) такий шестибуквений
іменник у формі називного відмінка однини, загальну назву, усі літери в якому різні
та який у так звану «ширину» займає якомога менше місця. Інтервал між буквами
вважайте постійним, незмінним та невраховуваним. Для прикладу, у трибуквеному
слові УРА: 2,5 + 1,7 + 2,5 = 6,7.
Про всяк випадок укажіть словник, із якого ви взяли свою відповідь.
Завдання настільки творче та складне, що розподіл балів у ньому буде ось
таким незвичним (уже висловлюємо щире співчуття тому з членів оргкомітету,
який тут «роздаватиме» бали за відповіді, що їх, звичайно, буде безліч та різних):
найкращий результат – це ; а кожний наступний (які будуть іти з
інтервалом в одиницю, приблизно так, як визначаються місця в нашому
заході) аж до кінцевого нуля балів – на 0, менше, тобто декому – або 1,5;
або 1; або 0,5; або 0.
Var
K:real;
d:integer;
Begin
if A > 1 then
if (A = 2)or(A = 3) then p:=p+1
else
if A mod 2 <> 0 then
Begin
K:=Sqrt(A);
d:=3;
While (d<K)and(A mod d <> 0) do
d:=d+2;
if A mod d <> 0 then
Begin
p:=p+1;
Write('(простое)')
End
End;
End;
Const
N = 20;
Var
A:array[1..N] of integer;
i,k:integer;
Begin
Randomize;
k:=0;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(99)+1;
Write(' ',A[i]);
P(A[i],k);
End;
WriteLn;
WriteLn('Кол-во простых чисел в массиве: ',k);
End.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var k:=Arr(1,2,5,10); // номиналы монет
var m:=ReadArrInteger('Кол-во монет по '+k.JoinIntoString+' руб:',4);
var n:=ReadInteger('Сумма в купюрах, руб:');
if m.Zip(k,(p,q)->p*q).Sum<n then begin // нехватка монет
Writeln('Размен невозможен'); exit
end;
var s:=''; // для результатов
for var i:=k.Length-1 downto 0 do
if (n>=k[i]) and (m[i]>0) then begin // номинал участвует
var t:=min(n div k[i],m[i]); // кол-во монет
n:=n-k[i]*t; // остаток
if s.Length>0 then s+=', ';
s+=t+' по '+k[i]+' руб.';
end;
if n<>0 then Writeln('Размен невозможен')
else Writeln(s)
end.
Примеры
Кол-во монет по 1 2 5 10 руб: 350 215 86 130
Сумма в купюрах, руб: 1526
130 по 10 руб., 45 по 5 руб., 1 по 1 руб.
Кол-во монет по 1 2 5 10 руб: 500 146 0 38
Сумма в купюрах, руб: 432
38 по 10 руб., 26 по 2 руб.
Кол-во монет по 1 2 5 10 руб: 10 20 30 40
Сумма в купюрах, руб: 25000
Размен невозможен