Показываю разборы с ответами и решениями урока 2.6 (Задачи по материалам недели) для курса «Программирование на Python».
Предыдущий модуль 2.5 следующий модуль 3.1
Напишите программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и сразу после этого выводит сумму квадратов всех считанных чисел.
Гарантируется, что в какой-то момент сумма введённых чисел окажется равной 0, после этого считывание продолжать не нужно.
В примере мы считываем числа 1, -3, 5, -6, -10, 13; в этот момент замечаем, что сумма этих чисел равна нулю и выводим сумму их квадратов, не обращая внимания на то, что остались ещё не прочитанные значения.
a1 = int (input())
s= a1
s2 = 0+abs(a1**2)
while s!=0:
a1 = int(input())
s = s + a1
s2 = s2+abs(a1)**2
if s==0:
break
print(s2)
Напишите программу, которая выводит часть последовательности 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 … (число повторяется столько раз, чему равно). На вход программе передаётся неотрицательное целое число n — столько элементов последовательности должна отобразить программа. На выходе ожидается последовательность чисел, записанных через пробел в одну строку.
Например, если n = 7, то программа должна вывести 1 2 2 3 3 3 4.
n = int(input())
lis = []
for i in range(1, n+1):
for j in range(1, i+1):
lis.append(i)
print(*lis[:n])
Напишите программу, которая считывает список чисел lstlst из первой строки и число xx из второй строки, которая выводит все позиции, на которых встречается число xx в переданном списке lstlst.
Позиции нумеруются с нуля, если число xx не встречается в списке, вывести строку «Отсутствует» (без кавычек, с большой буквы).
Позиции должны быть выведены в одну строку, по возрастанию абсолютного значения.
s = [ int(i) for i in input().split()]
n = int(input())
t = []
l = len(s)-1
if n in s:
for i in range(0,l+1):
if s[i]==n:
t.append(i)
g = len(t)-1
for j in range(0,g+1):
print(t[j],end=' ')
else:
print('Отсутствует')
Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк. После последней строки матрицы идёт строка, содержащая только строку «end» (без кавычек, см. Sample Input).
Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы на позициях (i-1, j), (i+1, j), (i, j-1), (i, j+1). У крайних символов соседний элемент находится с противоположной стороны матрицы.
В случае одной строки/столбца элемент сам себе является соседом по соответствующему направлению.
m = []
while True:
n = input().split()
if n[0] == 'end':
break
else:
m.append(n)
for i in range(len(m)):
x = ''
for j in range(len(m[i])):
a = int(m[i - 1][j])
if i == len(m) - 1:
b = int(m[0][j])
else:
b = int(m[i + 1][j])
c = int(m[i][j - 1])
if j == len(m[i]) - 1:
d = int(m[i][0])
else:
d = int(m[i][j + 1])
s = a + b + c + d
x += str(s) + ' '
print(x.rstrip())
Выведите таблицу размером n \times nn×n, заполненную числами от 11 до n^2n2 по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке, как показано в примере (здесь n=5):
a=int(input())
nul=[[0]*a for i in range(a)]
x,y=0,0
for i in range(1,a**2+1):
nul[x][y]=i
if x<=y+1 and x+y<a-1: y+=1
elif x<y: x+=1
elif x+y>=a : y-=1
elif x>=y : x-=1
for i in range(a):
print(*nul[i])
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
Более простой вариант задачи 4:
x=[int(i) for i in input().split()]
y=int(input())
n=0
l=len(x)
for i in range(l):
if x[i]==y:
n=n+1
print(i, end=» » )
if n==0:
print(«Отсутствует»)
n = int(input())
m = [[0] * n for i in range(n)]
i, j, di, dj = 0, 0, 0, 1
for k in range(n * n):
m[i][j] = k + 1
if (not -1 < i + di < n) or (not -1 < j + dj < n) or m[i + di][j + dj] != 0:
di, dj = dj, -di
i, j = i + di, j + dj
[print(*i) for i in m]