Склавиатуры вводится целое число х. заполните массив, состоящий из нечётного числа элементов, целыми числами, так чтобы средний элемент массива был равен х, слева от него элементы стояли по возрастанию, а справа - по убыванию. соседние элементы отличаются на единицу. например, при х = 3 массив 5 элементов заполняется так: 1 2 3 2 1.

ildar6464 ildar6464    3   20.03.2019 20:40    9

Ответы
makskot69 makskot69  26.05.2020 10:30

import random as r

x=int(input())

maximum=255

len_array=r.randint(3,maximum)

while len_array%2==0:

len_array=r.randint(1,maximum)

array=[r.randint(0,maximum) for i in range(len_array)]

mid=len_array//2

array[mid]=x

for i in range(mid-1):

if array[i+1]<array[i]:

 array[i+1],array[i]=array[i],array[i+1]

for i in range(mid+2,len(array)-1):

if array[i+1]<array[i]:

 array[i+1],array[i]=array[i],array[i+1]

for i,z in zip(array,range(len(array))):

if (x-1)==i or x==i or (x+1)==i:

 continue

elif i>(x-1) and z<mid+1 :

 while array[z]>(x-1):

  array[z]=r.randint(0,mid-1)

elif i<(x+1) and z>mid-1:

 while array[z]<(x+1):

  array[z]=r.randint(mid+1,maximum)

array[mid+1]=x+1

array[mid-1]=x-1

print(array)

ПОКАЗАТЬ ОТВЕТЫ
ketivolkowa ketivolkowa  26.05.2020 10:30

Var

 a: array [1..100] of integer;

 i, n, k: integer;

 

Begin

 readln(k);

 n := (k * 2) - 1;

 A[1] := 1;

 Write(A[1], ' ');

 for i := 2 to k

 do  

 begin

   A[i] := A[i - 1] + 1;

   Write(A[i], ' ');

 End;

 for i := k + 1 to n

 Do  

 Begin

   A[i] := A[i - 1] - 1;

   Write(A[i], ' ');

 End;

End.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика