Trong thử thách này, bạn sẽ nhận được bốn nhiệm vụ khác nhau nhưng có phần liên quan phải được giải quyết theo một cách cụ thể. Đầu tiên, tôi sẽ giải thích các nhiệm vụ, sau đó làm theo giải thích về cách bạn phải giải quyết nó.
Mã của bạn phải cho cả bốn tác vụ lấy hai số nguyên dương làm đầu vào : n,m
, ở đâu n<m
. Tất cả các nhiệm vụ phải được giải quyết trong cùng một ngôn ngữ. Hướng của ma trận là tùy chọn (n-by-m có thể được hiểu là "n hàng, m cột" hoặc "n cột, m hàng").
Nhiệm vụ 1:
Tạo (và đầu ra / in) một vectơ / danh sách bao gồm các phần tử : n, n+1 ... m-1, m
. Vì vậy, cho n=4, m=9
, bạn nên đầu ra : 4,5,6,7,8,9
.
Nhiệm vụ 2:
Tạo (và đầu ra / in) một ma trận / mảng / danh sách các danh sách (hoặc tương đương) trông như thế này:
n, n+1, ... m-1, m
n+1, n+2, ... m-1, m+1
...
n+m, n+m+1, ... 2*m-1, 2*m
Đối với n=4, m=9
bạn nên xuất:
4, 5, 6, 7, 8, 9
5, 6, 7, 8, 9, 10
...
13, 14, 15, 16, 17, 18
Nhiệm vụ 3:
Tạo (và đầu ra / in) một bảng nhân n-by-m (trên bất kỳ định dạng phù hợp nào). Ví dụ cho 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
Nhiệm vụ 4:
Xuất / in một vectơ / danh sách bao gồm các phần tử trong bảng nhân từ tác vụ 3, được sắp xếp theo thứ tự tăng dần, giữ các giá trị trùng lặp. Đối với n=4, m=9
, bạn nên xuất ra : 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
.
Các thách thức:
Bây giờ, tất cả các nhiệm vụ trên là khá tầm thường. Thách thức thực sự ở đây là mã cho nhiệm vụ 2 phải bắt đầu bằng mã cho nhiệm vụ 1, mã cho nhiệm vụ 3 phải bắt đầu bằng mã cho nhiệm vụ 2 và mã cho nhiệm vụ 4 phải bắt đầu bằng mã cho nhiệm vụ 3.
Để làm cho nó rõ ràng hơn:
Giả sử mã cho Nhiệm vụ 1 là (hoạt động trong Octave):
@(n,m)(n:m)
Sau đó, mã của bạn cho Nhiệm vụ 2 có thể là (hoạt động trong Octave):
@(n,m)(n:m)+(0:m)'
Mã cho nhiệm vụ Nhiệm vụ 3 phải là (không hoạt động trong Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3"
Và cuối cùng, mã cho Nhiệm vụ 4 phải là (không hoạt động trong Octave):
@(n,m)(n:m)+(0:m)'"Code_for_task_3""Code_for_task_4"
Đây là môn đánh gôn , vì vậy bài nộp với mã ngắn nhất cho nhiệm vụ 4 trong mỗi ngôn ngữ sẽ thắng. Như mọi khi: Giải thích rất được khuyến khích.
0<n<m
hay 0<=n<m
?
>2;
để mã của nhiệm vụ trước về cơ bản được hiển thị không?