如何以不同的方式将数组复制到另一个数组 - Pascal

How to copy on array to another array in different ways - Pascal

我正在用 array.The 解决 3 个问题,其中两个我已经解决了,还有 2 个问题。

如果前两个代码不错,第三个问题如何解决。

好吧,第三题就是把一个数组复制到另一个数组,这样:arrayA=[1,2,3],那么arrayB就是[1,2,3,3,2,1]。

先从头到尾再从尾到start.First问题是把arrayA复制到arrayB这样:arrayA=[1,2,3],arrayB=[1,1,2, 2,3,3]。 我只会 post 我的伪代码。

while i<length(a) do begin
  b[j]=a[i];
  j+=1;
  if (j+1) MOD 2 =0 then i+=1;
end;

另一个是将arrayA复制到arrayB twice.arrayA=[1,2,3], arrayB=[1,2,3,1,2,3]。这里我使用了for循环:

for i=1 to length(a) do arrayB[i]=arrayA[i];
for i=length(a)+1 to 2*length(a) do arrayB[i]=arrayA[i-length(a)]

如果计数已预定义,请避免 while 个循环。
利用简单的索引算法(我假设所有数组都是基于 1 的):

//112233
for i := 1 to length(a) do begin
  b[2 * i - 1] := a[i];
  b[2 * i] := a[i];
end;

//123123
l := length(a);
for i := 1 to length(a) do begin
  b[i] := a[i];
  b[i + l] := a[i];
end;

//123321
l := length(a);
for i := 1 to length(a) do begin
  b[i] := a[i];
  b[2*l - i + 1] := a[i];
end;