给定一个全部为true的数学表达式列表,该数学表达式包含 具有两个数字和结果的模余数计算,您的任务是得出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
。 - 可以保证该解决方案在数学上是可行的。
- 输入源可以来自文件,函数参数,stdin等。输出也是如此。
- 没有漏洞。
- 这是代码高尔夫球,因此最低的字节数为准。
测试用例
# 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
一个有效的结果呢?