W tym wyzwaniu otrzymasz cztery różne, ale nieco powiązane zadania, które należy rozwiązać w określony sposób. Najpierw wyjaśnię zadania, a następnie wyjaśnię, jak je rozwiązać.
Kod dla wszystkich czterech zadań powinien przyjmować dwie dodatnie liczby całkowite jako dane wejściowe:, n,mgdzie n<m. Wszystkie zadania muszą być rozwiązane w tym samym języku. Orientacja matryc jest opcjonalna (n-na-m można interpretować jako „n wierszy, m kolumn” lub „n kolumn, m wierszy”).
Zadanie 1:
Tworzy (i / wyjście print) wektor / listy składającej się z następujących elementów: n, n+1 ... m-1, m. Tak więc, dla n=4, m=9, zalecana moc: 4,5,6,7,8,9.
Zadanie 2:
Utwórz (i wydrukuj / wydrukuj) macierz / tablicę / listę list (lub równoważną) wyglądającą tak:
n, n+1, ... m-1, m
n+1, n+2, ... m-1, m+1
...
n+m, n+m+1, ... 2*m-1, 2*m
Dla n=4, m=9zalecana moc:
4, 5, 6, 7, 8, 9
5, 6, 7, 8, 9, 10
...
13, 14, 15, 16, 17, 18
Zadanie 3:
Utwórz (i wydrukuj / wydrukuj) tablicę mnożenia n-na-m (w dowolnym odpowiednim formacie). Przykład dla 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
Zadanie 4:
Wydrukuj / wydrukuj wektor / listę składającą się z elementów z tablicy mnożenia z zadania 3, posortowanych w porządku rosnącym, zachowując zduplikowane wartości. Dla n=4, m=9, zalecana moc: 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.
Wyzwanie:
Teraz wszystkie powyższe zadania są dość trywialne. Prawdziwe wyzwanie polega na tym, że kod dla zadania 2 musi zaczynać się od kodu dla zadania 1, kod dla zadania 3 musi zaczynać się od kodu dla zadania 2, a kod dla zadania 4 musi zaczynać się od kodu dla zadania 3.
Aby było bardziej jasne:
Załóżmy, że kod dla Zadania 1 to (działa w Octave):
@(n,m)(n:m)
Zatem twój kod dla Zadania 2 może być (działa w Octave):
@(n,m)(n:m)+(0:m)'
Kod dla zadania Zadanie 3 musi być (nie działa w Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3"
I na koniec, kod dla Zadania 4 musi być (nie działa w Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3""Code_for_task_4"
To jest golf golfowy , więc wygrywa zgłoszenie z najkrótszym kodem dla zadania 4 w każdym języku. Jak zawsze: wyjaśnienia są bardzo zalecane.
0<n<mczy 0<=n<m?
>2;tak aby kod poprzedniego zadania był zasadniczo pozbawiony możliwości działania?