Форум сайта python.su
Добрый вечер. Как расписать программу, которая на вход получает две строки:
первая строка с целыми числами
вторая целое число
и надо расписать, используя цифры из первой строки все варианты получения числа со второй строки
ввод:
123456789
200
результаты:
123-4+5-6-7+89
123+4+5+67-8+9
1+234-5-6-7-8-9
только + и -, не должно быть повторяющихся строк и если нет решения, то none
Заранее спасибо за помощь
Отредактировано shiroi (Ноя. 9, 2017 18:15:42)
Офлайн
shiroiНачнем сразу, с начала предлагаю дать ссылку на определение “обычной цифры” или предоставить такое определение самостоятельно.
первая строка с обычными цифрами
Офлайн
FishHook
целые числа
Офлайн
FishHook
целые числа
первая строка с обычными цифрами
вторая целое число
Отредактировано FishHook (Ноя. 9, 2017 18:17:04)
Офлайн
FishHook
я уже исправил, первая строка это целые числа, вторая целое число
Офлайн
shiroiА вот теперь, сформируй Техническое Задание, потому что то что ты напридумывал, понятно только тебе.
я уже исправил
Офлайн
FishHook
вводится последовательность целых чисел в первой строке
вводится целое число во второй строке
путем расстановки знаков + и - получить из последовательности чисел первой строки число со второй строки
пример:
вводятся
123456789
200
и как итог получаем все возможные варианты получения числа со второй строки при помощи чисел с первой и знаков “+” и “-”:
123-4+5-6-7+89
123+4+5+67-8+9
1+234-5-6-7-8-9
Офлайн
Пока несколько наводящих строк кода…
from itertools import product product(*[['+','-','']]*8)
Офлайн
scidam
спасибо большое, если я правильно понял, то функция product возвращает нам все возможные комбинации введенной нами последовательности?а что делает вот эта часть
(*[['+','-','']]*8)
Отредактировано shiroi (Ноя. 10, 2017 23:04:55)
Офлайн
shiroi
scidamспасибо большое, если я правильно понял, то функция product возвращает нам все возможные комбинации введенной нами последовательности?а что делает вот эта часть
product(['+', '-', ''],['+', '-', ''], repeat this 8 times)
for combination in product(...): expression = ... # Here we need to construct the expression to be evaluated: e.g. use ''.join(...) and list comprehension concept answer = ast.literal_eval(expression) # tested in Python 3.5.x, import ast first! if anser == number: # compare the result and the target value print('Target expression is: ', expression) break else: #see for-else docs for details... print('Sorry... Target expression wasn't found.')
Отредактировано scidam (Ноя. 11, 2017 01:03:55)
Офлайн