diff --git a/Module16/11_simmetrical_seq/main.py b/Module16/11_simmetrical_seq/main.py index 9b7f69c..2548175 100644 --- a/Module16/11_simmetrical_seq/main.py +++ b/Module16/11_simmetrical_seq/main.py @@ -1 +1,49 @@ # TODO здесь писать код +# По примерам, я так понял, что, пользователь не вводит цифру 0 +# Решил немного смухлевать +def check_numbers(collection): + temp = [] # Из-за того что родительский список тоже менялся, + temp.extend(collection) # пришлось городить такой способ + length = len(temp) + diff = length // 2 + remain = length % 2 + for i in range(diff): + index_left = (diff - i) - 1 + index_right = (diff + i) + remain + if temp[index_right] == 0: + continue + if temp[index_left] != temp[index_right]: + return False + else: + return True + +def rebuild(collection, number): + for i_number in range(number, 0, -1): + collection.append(collection[i_number-1]) + +def count_changes(collection): + number = 0 + temp_collection = [] # Из-за того что родительский список тоже менялся, + temp_collection.extend(collection) # пришлось городить такой способ + while not check_numbers(temp_collection): + temp_collection.append(0) + number += 1 + return number + +numbers_list = [] +numbers = int(input('Кол-во чисел: ')) +for i in range(numbers): + numbers_list.append(int(input('Число: '))) +print() +print('Последовательность:',numbers_list) + +step_count = count_changes(numbers_list) +rebuild(numbers_list, step_count) # Даже без return родительский список все равно меняется :-\ +# print(numbers) +if step_count != 0: + print('Нужно приписать чисел:', step_count) + print('Сами числа: [', end='') + for i_num in range(len(numbers_list) - step_count, len(numbers_list) -1): + print(numbers_list[i_num],end=', ') + else: + print(f'{numbers_list[len(numbers_list) -1]}]')