すべてが真であり 、2つの数値と結果を伴う剰余剰余計算で構成される数式のリストが与えられた場合、タスクは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のあり、結果も同様です。- 任意の便利な形式で入力し、任意の便利な形式で出力します。たとえば、input:
3 [3 0, 4 1, 5 3]およびoutput: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有効な結果?