Dato un elenco di espressioni matematiche che sono tutte vere e consistono in calcoli del resto del modulo con due numeri e un risultato, il tuo compito è quello di produrre i primi nnumeri che sono veri per tutte le istruzioni nell'elenco.
Per esempio:
[m % 3 = 0, m % 4 = 1, m % 5 = 3], dove% è l'operatore modulo.
Per n= 3, sono i primi 3 numeri (contando da 0) che si adattano alla sequenza 33, 93, 153, quindi il tuo risultato sarebbe quello (formato fino a te).
Regole / IO
- Prendi un numero positivo
ne un elenco di verità. Naturalmente, le cose che devi prendere sono solo l'RHS dell'operazione modulo e il risultato. ne i numeri nell'elenco delle verità saranno sempre compresi nell'intervallo 1 -> 2 ^ 31-1 , così come i risultati.- Prendi input in qualsiasi forma conveniente e output in qualsiasi forma conveniente. Ad esempio, l'ingresso:
3 [3 0, 4 1, 5 3]ed uscita:33 93 153. - È garantito che la soluzione è matematicamente possibile.
- La fonte di input può provenire da un file, parametri di funzione, stdin, ecc ... Lo stesso vale per l'output.
- Nessuna scappatoia.
- Questo è code-golf, quindi vince il numero di byte più basso.
Casi test
# 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
Implementazione di riferimento in pseudo-codice
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
}
0un risultato valido?