In questa sfida, otterrai quattro attività diverse ma in qualche modo correlate che devono essere risolte in un modo specifico. Prima spiegherò i compiti, quindi seguirò una spiegazione di come devi risolverlo.
Il tuo codice dovrebbe per tutte e quattro le attività assumere due numeri interi positivi come input:, n,m
dove n<m
. Tutte le attività devono essere risolte nella stessa lingua. L'orientamento delle matrici è facoltativo (n-per-m può essere interpretato come "n righe, m colonne" o "n colonne, m righe").
Compito 1:
Crea (e l'uscita / print) un vettore / lista costituita dagli elementi: n, n+1 ... m-1, m
. Così, per n=4, m=9
, si dovrebbe uscita: 4,5,6,7,8,9
.
Compito 2:
Crea (e stampa / stampa) una matrice / matrice / lista di liste (o equivalente) simile a questa:
n, n+1, ... m-1, m
n+1, n+2, ... m-1, m+1
...
n+m, n+m+1, ... 2*m-1, 2*m
Per n=4, m=9
te dovresti produrre:
4, 5, 6, 7, 8, 9
5, 6, 7, 8, 9, 10
...
13, 14, 15, 16, 17, 18
Compito 3:
Crea (e stampa / stampa) una tabella di moltiplicazione n-per-m (su qualsiasi formato adatto). Esempio per n=4, m=9
:
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
5 10 15 20
6 12 18 24
7 14 21 28
8 16 24 32
9 18 27 36
Compito 4:
Stampa / stampa un vettore / elenco costituito dagli elementi nella tabella di moltiplicazione dall'attività 3, ordinati in ordine crescente, mantenendo valori duplicati. Per n=4, m=9
, si dovrebbe uscita: 1, 2, 2, 3, 3, 4, 4, 4, 5, 6, 6, 6, 7, 8, 8, 8, 9, 9, 10, 12, 12, 12, 14, 15, 16, 16, 18, 18, 20, 21, 24, 24, 27, 28, 32, 36
.
La sfida:
Ora, tutti i compiti sopra sono abbastanza banali. La vera sfida qui è che il codice per l'attività 2 deve iniziare con il codice per l'attività 1, il codice per l'attività 3 deve iniziare con il codice per l'attività 2 e il codice per l'attività 4 deve iniziare con il codice per l'attività 3.
Per rendere più chiaro:
Supponiamo che il codice per Task 1 sia (funziona in Octave):
@(n,m)(n:m)
Quindi il tuo codice per Task 2 potrebbe essere (funziona in Octave):
@(n,m)(n:m)+(0:m)'
Il codice per l'attività Task 3 deve essere (non funziona in Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3"
E infine, il codice per Task 4 deve essere (non funziona in Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3""Code_for_task_4"
Questo è code-golf , quindi vince l'invio con il codice più breve per l'attività 4 in ogni lingua. Come sempre: le spiegazioni sono fortemente incoraggiate.
0<n<m
o 0<=n<m
?
>2;
modo che il codice dell'attività precedente sia essenzialmente reso non operativo?