Readln(n);
for i:=1 to n do
a[i]:=random(100); //тут можно ввести макс. значение для рандома
k:=n div 2;
for i:=1 to k do
begin
t:=a[i]; a[i]:=a[k-i+1]; a[k-i+1]:=t;
end;
inc(k);
for i:=k to n do
begin
t:=a[i]; a[i]:=a[n-i+1]; a[n-i+1]:=t;
end;
for i:=1 to n do
write(a[i],' ');
<span>writeln;
readln;
end.</span>
В задаче достаточно держать в памяти два числа: наибольшее и второе по величине – и обновлять эту пару, считывая числа. Если считанное число больше максимального, то оно будет новым максимумом, а бывший максимум станет вторым по величине; если считанное число меньше максимального, но больше второго по величине, то оно становится новым вторым по величине.
Реализация (python 3):
max, max2 = int(input()), int(input())
if max2 > max:
max, max2 = max2, max
while True:
t = int(input())
if t == 0: break
if t > max:
max, max2 = t, max
elif t > max2:
max2 = t
print(max2)
Пример ввода:
5
1
3
2
4
0
Пример вывода:
4
Все что знаю
475: (в 8й )=100111101 (в 2й)
457: (В 8й)= 10010111
А в 10й , так и будет 457,475)))
Тут все просто.
40/2 остаток 0, 20 / 2 остаток 0, 10 / 2 остаток 0, 5/2 остаток 1, затем 4 / 2 остаток 0, и 2/2 остаток 1
Итого 40 в двоичной = 101000
А 25 по аналогии будет 11001