高分求解一个Delphi源代码算法表达

来源:百度知道 编辑:UC知道 时间:2024/06/07 10:01:48
设有一组15个元素的一组整数,然后分别取第一组整数的第1和第2位,第2和第3位,第3和第4位……第15位和0的和乘以2为第二组15个元素的整数。
然后以同样的方法处理第二组15个元素的整数组得出第三个整数组,一直循环N次,求循环了N次后的15个元素值是多少。

如图:

12 23 43 25 54 45 66 32 23 32 …… 第1次
\ / \ / \ / \ / \ / \ / \ / \ /
70 132 138 158 222 196 110 110 …… 第2次
\ / \ / \ / \ / \ / \ / \ / \ /
404 310 292 760 836 612 440 220 …… 第3次
\ / \ / \ / \ / \ / \ / \ / \ /
…………… …… 第N次

求第N次的结果。
请pascal高手指点。

type TLoopArr = array[0..14] of Integer;

function GetLoopArr(const AArr: TLoopArr; const N: Byte): TLoopArr;
var
iIndex, iCount: Integer;
begin
Result := AArr;
for iCount := 0 to N - 1 do //N不宜取大值
begin
for iIndex := Low(Result) to High(Result) - 1 do
Result[iIndex] := (Result[iIndex] + Result[iIndex + 1]) * 2;
Result[High(Result)] := Result[High(Result)] * 2;
end;
end;

//用上面的数据测了一下,楼主似乎算错了..