PS Это не домашний вопрос и не полный код.вопрос начинается как -
Вам выдаются старые сенсорные номера смартфонов с клавиатурой и приложением для калькулятора.
Цель: цель состоит в том, чтобы набрать номер на клавиатуре.Но так как телефон старый, некоторые номера и некоторые операции не могут быть затронуты.Например,2,3,5,9 клавиши не отвечают, т.е. вы не можете их использовать, но вы всегда можете сделать число, используя другие числа и операции в калькуляторе.Там может быть несколько способов сделать число.Калькулятор имеет 1-9 и +, -, *, /, = как операции.После того как вы сделали номер в калькуляторе, вы можете скопировать номер и использовать его.Вы должны найти минимальное число касаний, необходимое для получения номера.
Я пытался откатить назад и несколько других источников для возможного способа решения такого вопроса.
Ввод:
Будет несколько тестовых случаев. Каждый тестовый случай будет состоять из 4 строк
Первая строка будет состоять из N, M, O
- N: нет изклавиши, работающие в Dialpad (из 0,1,2,3,4,5,6,7,8,9)
- M: поддерживаемые типы операций (+, -, *, /)
- O: максимально допустимое количество касаний
вторая строка ввода содержит работающие цифры, например, 0,2,3,4,6.
- Третья строка содержит значения описывающих операций, 1 (+), 2 (-), 3 (*), 4 (/)
- четвертая строка содержит число, которое мы хотим сделать.
Вывод:
Вывод содержит 1 строчную печать числа касаний, необходимого для получения числа
Образец теста:
1 // No of test cases
5 3 5 // N ,M, O
1 2 4 6 0 // digits that are working (total number of digits = N),
1 2 3 // describing operations allowed (1–> ‘+’, 2–> ‘-‘, 3–> ‘*’ , 4–> ‘/’ )(total number is equals to M)
5 // number we want to make
Ответ 3 Как 4?1 + 4 =, «=» также считается касанием.