Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как решить задачу с pythontutor.ru?

Карл Граймс Ученик (104), на голосовании 7 лет назад
Обувная фабрика собирается начать выпуск элитной модели ботинок. Дырочки для шнуровки будут расположены в два ряда, расстояние между рядами равно a, а расстояние между дырочками в ряду b. Количество дырочек в каждом ряду равно N. Шнуровка должна происходить элитным способом “наверх, по горизонтали в другой ряд, наверх, по горизонтали и т. д. ” (см. рисунок). Кроме того, чтобы шнурки можно было завязать элитным бантиком, длина свободного конца шнурка должна быть l

. Какова должна быть длина шнурка для этих ботинок?

Программа получает на вход четыре натуральных числа a
, b, l и N - именно в таком порядке - и должна вывести одно число - искомую длину шнурка.
Дополнен 7 лет назад
a = int(input()) #Расстояние между рядами
b = int(input()) #Расстояние между дырочками
l = int(input()) #Длинна свободного конца шнурка
N = int(input()) #Количество дырочек
print((b * (N - 1) * 2) + a * N + (l * 2))
У меня это решение работает не во всех тестах (там разные входные данные). Просто ступор.
Голосование за лучший ответ
Сгибальщик Мудрец (11059) 7 лет назад
print(2*(N*(a+b)+l-b)-a)
Darya ButakhinaУченик (103) 4 года назад
Здравствуйте!
Не ясно почему применяется именно такое вычисление.
Можете описать почему задача решается так, а не иначе?

P.S.
Мне важно понять вычислительный процесс.
print(2 * L + (2 * N - 1) * a + 2 * (N - 1) * b)
Игорь Иванов Мастер (1574) 7 лет назад
a = int(input()) # Расстояние между рядами
b = int(input()) # Расстояние между дырочками
l = int(input()) # Длинна свободного конца шнурка
N = int(input()) # Количество дырочек

print(2 * (N * (a + b) + l - b) - a)

"""
def bootlace(a, b, l, N): print(2 * (N * (a + b) + l - b) - a)

bootlace(1, 1, 1, 1) # 3
bootlace(2, 1, 3, 4) # 26
bootlace(10, 20, 30, 40) # 2410
bootlace(4, 3, 2, 1) # 8
"""
Radioactive Знаток (364) 5 лет назад
a = int(input())
b = int(input())
l = int(input())
N = int(input())
s1 = (((a+b)*(N-1))+((a+b)*(N-1)))+a
s2 = l+l
answer = s1+s2
print(answer)
можно сделать короче на 2 строки
Ан Ученик (202) 5 лет назад
a, b, l, N = int(input()), int(input()), int(input()), int(input())
print(2*l+2*b*(N-1)+a+2*a*(N-1))
Beket Samaluly Ученик (109) 4 года назад
a = int(input())
b = int(input())
l = int(input())
n = int(input())
if n != 1:
n = n*2
a = a*(n-2) + a
z = b*(n/2-1)*2 + a + l*2
elif n == 1:
n = n*2
z = a + l*2

print(z)
МЕТИЗТРЕНД Профи (998) 1 год назад
a=int(input())
b=int(input())
l=int(input())
N=int(input())
length=((a*((N*2)-1))+(b*(N-1)*2)+(l*2))
print(length)
TatianaЗнаток (370) 1 год назад
почему N-1??
Похожие вопросы