


Информатика. Считаем ноги
Классическая задача на уравнения в целых числах формулируется так. В комнате стояло несколько (>=1) трёхногих табуреток и несколько (>=1) собак (четвероногих). Сколько могло быть табуреток и собак, если всего ног было 30. Или, если записать математически: 3*t + 4*s = 36. У такой системы в натуральных числах может быть несколько решений (8 табуреток и 3 собаки; 4 табуретки и 6 собак, варианты с 0 собак и 0 табуреток условию не удовлетворяют).
Напишите программу, которая будет принимать на вход название и количество ног для двух типов объектов, а также суммарное количество ног в комнате, а выводить все возможные варианты по возрастанию количества экземпляров первого объекта и их количество в виде:
Ввод: Вывод:
табуретки табуретки - 4, собаки - 6
3 (кол-во ног) табуретки - 8, собаки - 3
собаки Итого вариантов - 2
4 (кол-во ног)
36
хромые кошки хромые кошки - 5, офисные стулья - 2
3 Итого вариантов - 1
офисные стулья
5
25
осьминоги Итого вариантов - 0
8
кальмары
10
375
Если что это надо на питоне сделать.
Пожалуйста помогите
И решение нужно с помощью цикла. Такая тема (.
С таким циклом:
legs1, legs2, N = map(int, input('\033[4m').split())
k = 0; print('\033[0m')
for x in range(N // legs1 + 1):
y = (N - x * legs1) / legs2; inty = int(y)
if y == inty: k += 1; print(str(k) + ') ', x, inty)
input()
С таким циклом:
legs1, legs2, N = map(int, input('legs1 legs2 N: ').split())
k = 0; print()
for x in range(N // legs1 + 1):
if (N - x * legs1) % legs2 == 0:
k += 1; print(str(k) + ') ', x, (N - x * legs1) // legs2)
input()
С двойным циклом:
legs1, legs2, N = map(int, input('legs1 legs2 N: ').split())
for x in range(N//legs1+1):
for y in range((N-x*legs1)//legs2+1):
if x*legs1+y*legs2==N: print(x,y)