Нахождение правильной возможности - PullRequest
0 голосов
/ 30 марта 2019

Проблема:

Z=(89x-y) /10

Существует 504 возможных комбинаций X, Y и Z, но только одна верна

Вот код, который я написал:

for x in range (1,10):
    for y in range (1,10):
        for z in range (1,10):
            if x=y or x=z or y=z :
                break
            print (x, y, z)

Ответы [ 2 ]

1 голос
/ 30 марта 2019

Это код, который вы можете использовать. Нет необходимости в 3 петлях; так как одна переменная зависит от двух других.

>>> for i in range(1,10):
...     for j in range(1,10):
...             v =  (89*i - j)/10
...             if v == int(v) and 1<= v<= 9: print(i,j,int(v))
... 
1 9 8
0 голосов
/ 30 марта 2019

В вашем коде я не вижу, где вы используете отношение z = (89x-y) / 10, поэтому мы не должны ожидать, что ваш код сможет найти решение.Кроме того, чтобы проверить равенство, используйте ==, а не =.

Помимо использования двух циклов for, как показано в другом решении, если мы хотим использовать математику для ее решения, обратите внимание, что у нас есть

89x - y = 10z

89x = 10z + y

Поскольку мы хотим найти однозначное решение, которое принимает значение от 1 до 9, правая часть меньше 100и, следовательно, x должно быть 1. z отвечает за десятизначное значение, а y должно быть однозначным значением.

Следовательно, x = 1, y = 9 и z = 8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...