在此挑战中,您将获得四个不同但有些相关的任务,必须以特定的方式解决它们。首先,我将解释任务,然后解释如何解决它。
您的代码在所有四个任务中都应使用两个正整数作为输入:n,m
,其中n<m
。所有任务必须以相同的语言解决。矩阵的方向是可选的(n×m可以解释为“ n行,m列”或“ n列,m行”)。
任务1:
创建(并输出/打印)由以下元素组成的矢量/列表:n, n+1 ... m-1, m
。因此,对于n=4, m=9
,您应该输出:4,5,6,7,8,9
。
任务2:
创建(并输出/打印)矩阵/数组/列表列表(或等效列表),如下所示:
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
您应该输出:
4, 5, 6, 7, 8, 9
5, 6, 7, 8, 9, 10
...
13, 14, 15, 16, 17, 18
任务3:
创建(并输出/打印)n×m乘法表(采用任何合适的格式)。示例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
任务4:
输出/打印由任务3的乘法表中的元素组成的矢量/列表,并按升序排序,并保留重复的值。为此n=4, m=9
,您应输出: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
。
挑战:
现在,以上所有任务都很简单。真正的挑战在于,任务2的代码必须以任务1的代码开头,任务3的代码必须以任务2的代码开头,任务4的代码必须以任务3的代码开头。
为了更清楚一点:
@(n,m)(n:m)
@(n,m)(n:m)+(0:m)'
任务Task 3的代码必须是(在Octave中不起作用):
@(n,m)(n:m)+(0:m)'"Code_for_task_3"
最后,任务4的代码必须是(在Octave中不起作用):
@(n,m)(n:m)+(0:m)'"Code_for_task_3""Code_for_task_4"
这是代码高尔夫球,因此使用每种语言以任务4的最短代码提交的提交将获胜。与往常一样:强烈建议进行解释。
0<n<m
还是0<=n<m
?
>2;
从而使上一个任务的代码本质上成为空操作?