Мальчик учит стихотворение из 40 строк. Чтобы запомнить первую строчку, ему понадобилась 1 минута. На каждую следующую он тратит на 10% времени больше, чем на предыдущую. Обычно он это делает по дороге в школу, что занимает не более 15 мин, либо перед началом мультика. При такой системе заучивания стихотворение держится в памяти не более 3 часов. - Сколько времени понадобилось бы мальчику, чтобы выучить всё стихотворение?
- Из какого количества строк (максимум) должно состоять стихотворение, чтобы мальчик помнил его целиком?
- Сколько строк можно выучить до начала мультика?
Var A,d,S:integer;
Begin
Write('Искомые числа:');
For A:= 300 to 600 do
Begin
S:=A+1;
d:=A div 2;
While d>1 do
Begin
if A mod d = 0 then S:=S+d;
d:=d-1
End;
if S = 50 then Write(' ',A);
End
End.
Программа, разумеется, не выдаст ни одного числа, т.к. каждое число делится на себя и на единицу. То есть сумма делителей всегда будет больше 301.
Если не брать в расчёт само число и единицу, то программа будет выглядеть так:
Var A,d,S:integer;
Begin
Write('Искомые числа:');
For A:= 300 to 600 do
Begin
S:=0;
d:=A div 2;
While d>1 do
Begin
if A mod d = 0 then S:=S+d;
d:=d-1
End;
if S = 50 then Write(' ',A);
End
End.
Результат работы программы:
Искомые числа: 301 481 589
Const
N = 20;
Var
MX:array[1..N] of integer;
i,k:integer;
Begin
ClrScr;
Randomize;
k:=0;
Write('Исходный массив:');
For i:=1 to N do
Begin
MX[i]:=random(10);
Write(' ',MX[i]);
if MX[i] mod 2 <> 0 then k:=k+1;
End;
WriteLn;
WriteLn('Количество нечётных элементов: ',k);
Write('Преобразованный массив:');
For i:= 1 to N do
Begin
MX[i]:=MX[i]-k;
Write(' ',MX[i])
End;
ReadLn
End.
uses Crt;
Const
N = 13;
Var
A:array[1..N] of integer;
i,Max,Min:integer;
Begin
ClrScr;
Randomize;
Min:=1;
Max:=1;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(44)+17;
Write(' ',A[i]);
if A[Min]>A[i] then Min:=i;
if A[Max]<A[i] then Max:=i;
End;
WriteLn;
WriteLn('Max = ',A[Max]);
WriteLn('Min = ',A[Min]);
WriteLn('Max - Min = ',A[Max]-A[Min]);
ReadLn
End.
Const
N = 13;
Var
MM:array[1..N] of byte;
B:byte;
i,Max:integer;
Begin
Randomize;
Max:=1;
Write('Исходный массив:');
For i:= 1 to N do
Begin
MM[i]:=random(90)+10;
Write(' ',MM[i]);
if MM[i]>MM[Max] then Max:=i;
End;
WriteLn;
WriteLn('Max(MM) = MM[',Max,'] = ',MM[Max]);
Write('Новый массив:');
B:=MM[1];
MM[1]:=MM[Max];
MM[Max]:=B;
For i:= 1 to N do
Write(' ',MM[i])
End.