Bu meydan okumada, belirli bir şekilde çözülmesi gereken dört farklı ama biraz ilgili görev alacaksınız. İlk olarak, görevleri açıklayacağım, sonra nasıl çözmeniz gerektiğine dair bir açıklama izleyeceğim.
Kodunuz dört görev için de girdi olarak iki pozitif tamsayı almalıdır: n,m
nerede n<m
. Tüm görevler aynı dilde çözülmelidir. Matrislerin oryantasyonu isteğe bağlıdır (n-by-m, "n satır, m sütun" veya "n sütun, m satır" olarak yorumlanabilir).
Görev 1:
(Ve çıkış / baskı) elementten oluşan bir vektör / liste oluşturun: n, n+1 ... m-1, m
. Yani, için n=4, m=9
, çıkış yapmalıdır: 4,5,6,7,8,9
.
Görev 2:
Aşağıdaki gibi bir matris / dizi / liste listesi (veya eşdeğeri) oluşturun (ve çıktısını alın / yazdırın):
n, n+1, ... m-1, m
n+1, n+2, ... m-1, m+1
...
n+m, n+m+1, ... 2*m-1, 2*m
n=4, m=9
Çıktı almanız için :
4, 5, 6, 7, 8, 9
5, 6, 7, 8, 9, 10
...
13, 14, 15, 16, 17, 18
Görev 3:
Bir n-m-çarpma tablosu oluşturun (ve çıktısını alın / yazdırın) (herhangi bir uygun formatta). Örnek 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
Görev 4:
Görev 3'ten çarpım tablosundaki öğelerden oluşan bir vektör / liste çıktısı alın / yazdırın, yinelenen değerleri koruyarak artan düzende sıralayın. İçin n=4, m=9
, çıktısını yapmalıdır: 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
.
Meydan okuma:
Şimdi, yukarıdaki tüm görevler oldukça önemsiz. Buradaki asıl zorluk, görev 2 kodunun görev 1 koduyla başlaması, görev 3 kodunun görev 2 koduyla başlaması ve görev 4 kodunun görev 3 koduyla başlaması gerektiğidir.
Daha açık hale getirmek için:
Görev 1'in kodunun (Octave'de çalışır) olduğunu varsayalım :
@(n,m)(n:m)
Sonra Görev 2 kodunuz olabilir (Octave'de çalışır):
@(n,m)(n:m)+(0:m)'
Görev 3 kodunun olması gerekir (Octave'da çalışmaz):
@(n,m)(n:m)+(0:m)'"Code_for_task_3"
Ve son olarak, Görev 4'ün kodu olmalıdır (Octave'da çalışmaz):
@(n,m)(n:m)+(0:m)'"Code_for_task_3""Code_for_task_4"
Bu kod golf , bu nedenle her dilde görev 4 için en kısa kod ile gönderme kazanır. Her zaman olduğu gibi: Açıklamalar büyük ölçüde teşvik edilmektedir.
0<n<m
ya 0<=n<m
?
>2;
böylece önceki görevin kodu esasen bir işlem yapılmaz mı?