Учитывая список математических выражений, которые все верны и состоят из вычислений по модулю остатка с двумя числами и результатом, ваша задача - получить первые nчисла, которые верны для всех операторов в списке.
Например:
[m % 3 = 0, m % 4 = 1, m % 5 = 3]где% - оператор по модулю.
Для n= 3 первые 3 числа (считая от 0), которые соответствуют последовательности 33, 93, 153, таким образом, ваш результат будет таким (отформатируйте до вас).
Правила / IO
- Вы берете положительное число
nи список истин. Конечно, все, что вам нужно, - это только RHS операции по модулю и результат. nи числа в списке истин всегда будут в диапазоне 1 -> 2 ^ 31-1 , как и результаты.- Вы берете ввод в любой удобной форме и вывод в любой удобной форме. Например, входной сигнал:
3 [3 0, 4 1, 5 3]и выход:33 93 153. - Гарантируется, что решение математически возможно.
- Источник ввода может быть из файла, параметров функции, стандартного ввода и т. Д. То же самое относится и к выводу.
- Нет лазеек.
- Это код-гольф, поэтому выигрывает самое низкое число байтов.
Testcases
# Input in the form <n>, <(d r), (d2 r2), ...>
# where <d> = RHS of the modulo expression and <r> the result of the expression. Output in the next line.
5, (3 2), (4 1), (5 3)
53 113 173 233 293
3, (8, 0), (13, 3), (14, 8)
120 848 1576
Ссылочная реализация в псевдокоде
n = (an integer from stdin)
truths = (value pairs from stdin)
counter = 0
while n != 0 {
if matches_criterias(counter, truths) {
print counter
n -= 1
}
counter += 1
}
0ли действительный результат?