Angesichts einer Liste von mathematischen Ausdrücken, die alle zutreffen und aus Modulo-Restberechnungen mit zwei Zahlen und einem Ergebnis bestehen, müssen Sie die ersten n
Zahlen ermitteln, die für alle Aussagen in der Liste zutreffen.
Beispielsweise:
[m % 3 = 0, m % 4 = 1, m % 5 = 3]
, wobei% der Modulo-Operator ist.
Für n
= 3 sind die ersten 3 Zahlen (beginnend mit 0), die zur Sequenz passen 33, 93, 153
, daher wäre das Ergebnis das (Format nach Belieben).
Regeln / IO
- Du nimmst eine positive Zahl
n
und eine Liste von Wahrheiten. Natürlich sind die Dinge, die Sie mitnehmen müssen, nur die RHS der Modulo-Operation und das Ergebnis. n
und die Zahlen in der Liste der Wahrheiten werden immer im Bereich 1 -> 2 ^ 31-1 liegen , und so sind die Ergebnisse.- Sie nehmen Eingaben in beliebiger Form entgegen und geben sie in beliebiger Form aus. Zum Beispiel, Eingang:
3 [3 0, 4 1, 5 3]
und Ausgang:33 93 153
. - Es ist garantiert, dass die Lösung mathematisch möglich ist.
- Die Eingabequelle kann aus einer Datei, Funktionsparametern, stdin usw. stammen. Gleiches gilt für die Ausgabe.
- Keine Lücken.
- Das ist Code-Golf, also gewinnt die niedrigste Bytezahl.
Testfälle
# 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
Referenzimplementierung in Pseudocode
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
ein gültiges Ergebnis?