Написать пузырьковую сортировку в обратном направлении на основе кода во вложении. вложение: отсортировать от наибольшего значения к наименьшему # написать программу, которая сортирует массив # от наименьшего значения, к наибольшему # импортирую генератор случайных чисел import random mas = [] # введу количество элементов массива n = int(input('введите количество элементов массива: ')) count = 0 while count < n: # генерация случайного целого числа от 0 до 100 x = random.randint(0, 100) mas.append(x) count += 1 print(mas) # определить длину массива l = len(mas) # зададим индексы для обхода i (внешний круг) и j (внутренний круг) i, j = 0, 0 # равносильно i = 0; j = 0 # реализую внешний цикл while i < l: # указываю правый элемент от текущего j = i+1 # реализация внутреннего цикла while j < l: # если текущий элемент больше правого, то поменять их местами if mas[i] > mas[j]: mas[i], mas[j] = mas[j], mas[i] j += 1 j = 0 i += 1 print(mas)
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293
var
x, y, a, b, k: integer;
begin
k:=10000;
repeat
x:=k;
a := 0; b := 0; y := 1;
while x > 0 do
begin
if (x mod 10) mod 2 = 0
then
a := a * 10 + x mod 10
else begin
y := y * 10;
b := b * 10 + x mod 10
end;
x := x div 10
end;
a := a * y + b;
k := k + 1;
until a = 26391;
writeln(a:8, k-1:8);
end.
55:5=11
365:11≈33(34) берём "34", чтобы перехлестнуть 365.
Так как 11-ый член является замыкающим (перехлёстывающим 365), тогда смотрим по ближайшим:
34*10=340 (340+34=374) - подходит, но это не максимум!
365 mod 10= 36, а это значит, что последующий член будет больше 365, а именно 395.
В задании сказано, что d должно быть максимальным, а "34" - это допустимое, но не максимально число, удовлетворяющее условию, даже минимальное (по результату).
Проверка:
34*11=374, значит, когда на экране выведется s:=340, n:=50, то, зайдя по следующему циклу, получится, что s:= 374, n:=55. На следующий цикл программа не пойдёт.
ответ: d=34.