Оптом – дешевле! в москве начал работать новый оператор сотовой связи, предоставляющий доступ в интернет посредством технологии 3g. новый оператор предлагает простые и невысокие тарифы, в частности, один мегабайт интернет-трафика стоит 1 рубль. кроме того, оператор предлагает покупать оптовые пакеты трафика – есть два предложения: купить пакет трафика на a мегабайт за b рублей и купить пакет трафика на c мегабайт за d рублей. таня планирует использовать в течение месяца n мегабайт интернет-трафика. определите минимальную сумму, которую придётся ей заплатить. таня может приобретать любое количество каждых из двух предлагаемых пакетов, а также оплачивать трафик по тарифу «1 рубль за мегабайт». таня может приобретать пакеты интернет-трафика и в том случае, если суммарный оплаченный трафик будет более n мегабайт, если это выйдет дешевле. программа получает на вход пять натуральных чисел n, a, b, c, d, записанных в отдельных строках, не превосходящих 500 000 каждое. гарантируется, что a > b и c > d. программа должна вывести одно целое число – минимальную сумму, которую нужно заплатить для приобретения n мегабайт трафика ввод 35 10 9 20 17 вывод 31 примечание пакет на 10 мегабайт стоит 9 рублей, пакет на 20 мегабайт стоит 17 рублей. для оплаты 35 мегабайт нужно купить пакет на 10 мегабайт и пакет на 20 мегабайт, а за оставшиеся 5 мегабайт заплатить 5 рублей. ввод 55 30 20 20 16 вывод 40 примечание пакет на 30 мегабайт стоит 20 рублей, пакет на 20 мегабайт стоит 16 рублей. для оплаты 55 мегабайт нужно купить два пакета на 30 мегабайт, что суммарно будет стоить 40 рублей. на паскале
А9)1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 80 81 82 83 85 88 91 94 97 100
A10) 28
Объяснение:
А9
k:=0
Ты проверяешь 100 чисел от 1 до 100 (строка про i for i:=1 to 100 do) и ниже у тебя 2 условия
if (i div 4 =20) or (i mod 3 = 1) then
k:=k+1
это условие говорит, что если i div 4=20 или i mod 3=1 тогда ты k увеливаешь на 1. То есть если число подходит хотя бы по 1 из условий ты увеливаешь k на единицу
div это целая часть от деления или по другому чтоб было понятнее то что в числе до запятой. Допустим 7 div 3 =2 так как 7 делить на 3=2,33 но целая часть это 2
Так вот по нашему первому условию подойдут числа 80 81 82 83 потому что их целая часть от деления на 4 будет равна 20
Во втором условии i mod 3=1 mod это остаток от деления но это уже не то что после запятой а именно остаток. Как столбиком поделишь то что будет в остатке это mod. Например 10 mod 3 =1 так как 10 делить на 3 это будет 3 целых и 1 в остатке.
Так вот по нашему второму условию подходят все числа от 1 до 100 в которых после деления на 3 останется 1. Это числа 1 4 7 10 13... 82 85 88 91 94 97 100. Заметь что число 82 подходило и по первому условию так что его 2 раза не считаем. И после каждого подходящего такого числа мы к увеливаем на 1. Всего таких чисел 37 а нам надо вывести значение к которое будет равно количеству этих чисел. Сами числа написаны в ответе
А10
Так как s не присвоили никакого значения значит s изначально 0
Даны элементы массива B[1] B[2] B[3] B[4] B[5] B[6] B[7]
k:=-5
Ты снова проверяешь 7 элементов (строка for n:=1 to 7 do) сначала первый потом 2 потом 3 и тд до 7
B[n] сначала будет B[1] так как n cначала проверяешь первый элемент массива
B[n]:=k+n;
то есть сначала повторяюсь проверяешь B[1]
B[1]:= -5+1=-4
k:=k+1 то есть k:=-5+1 =-4
s:=s+2*B[1]=0+2*(-4)=-8
Теперь проверяем n=2
B[2]: = k+n k уже равно -4 а n равно 2
B[2] :=-4+2 =-2
k:=-4+1=-3
s:= -8+2*(-2)=-12
B[3]=-3+3=0
k:=-2
s:=-12+2*0=-12
B[4]:=-2+4=2
k:=-1
s:=-12+2*2=-8
B[5]:=-1+5=4
k:=0;
s:=-8+2*4=0
B[6]:=6
k:=1
s:=0+2*6=12
B[7]=1+7=8
k:=2
s:=12+2*8=28
В итоге значение s 28
Надеюсь, что понятно объяснил. И заранее извиняюсь за грамотность-лениво столько писать и расставлять запятые)
c:array of array of integer;
ma:array of array of integer;
i,j,n:integer;
begin;
randomize;
readln(n);
setlength(a,n+1); //задаём размерность динамических массивов
setlength(c,n+1);
setlength(ma,n+1);
for i:=1 to n do
begin;
setlength(a[i],n+1);
setlength(c[i],n+1);
setlength(ma[i],n+1);
end;
writeln('Matrix A:'); //генерируем массив псеводслучайных чисел
for i:=1 to n do begin;
writeln;
for j:=1 to n do
begin;
a[i,j]:=random(10);
write(a[i,j]:4);
end;
end;
writeln;
writeln('Matrix C:'); //аналогично
for i:=1 to n do
begin;
writeln;
for j:=1 to n do
begin;
c[i,j]:=random(10);
write(c[i,j]:4);
end;
end;
for i:=1 to n do //сохраняем матрицу C для транспонации
for j:=1 to n do
ma[i,j]:=c[i,j];
writeln;
writeln('Transpose matrix C:'); //транспонируем C
for i:=1 to n do
begin;
writeln;
for j:=1 to n do
begin;
c[i,j]:=ma[j,i];
write(c[i,j]:4);
end;
end;
writeln;
writeln('Final matrix:'); // получаем финальную матрицу
for i:=1 to n do
begin;
writeln;
for j:=1 to n do
begin;
ma[i,j]:=2*c[i,j]*a[i,j];
{по свойству дистрибутивности матриц С(A+A)=C*A+C*A=2*C*A}
write(ma[i,j]:4);
end;
end;
end.