Арифметическая прогрессия
Составить программу вычисления n первых членов арифметической прогрессии, заданных формулой ak+1=ak+d, где a1, k и d запрашиваются при запуске программы
При вводе данных: a1 = 1, d = 2, k = 3 Ответ выводит 1 3 5
Написал код, но хотел бы спросить, правильный ли он?
a1 = int(input('Введите первый номер члена a1: '))
d = int(input('Введите разность ар.пр. : '))
k = int(input('Введите последний номер члена k: '))
result = '' #Инициализация переменной с пустым значением
for i in range(k):
result += str(a1+i*d) + ' '
print('\nВсе члены прогрессии', result)
Ответы (1 шт):
Да, код рабочий.
Единственное, что можно сказать: так как вы собираете последовательность, то логичнее хранить ее в списке, а не строке, и также логичнее не преобразовывать элементы к строке до того момента, пока вам не понадобится вывести элементы на печать.
Иначе представьте: вам в дальнейшем придется работать с этой последовательностью, и тогда придется доставать ее из этой строки, что не очень удобно.
Предлагаю написать как-то так, логика работы не меняется, но этот код чуть более архитектурный:
a1 = int(input('Введите первый номер члена a1: '))
d = int(input('Введите разность ар.пр. : '))
k = int(input('Введите последний номер члена k: '))
result = []
for i in range(k):
result.append(a1+i*d)
print('\nВсе члены прогрессии', ' '.join([str(x) for x in result]))