?? unit2.pas
字號:
////////////////////////////////////////////////////////////////////////////////
//題目:假設有一種細胞,從出生后第三秒起每秒(發育成熟了)都產生了一個新細胞,//
//后代細胞長到第三秒后也一樣,每秒又分裂了一只細胞,假設所有細胞的壽命固定為 //
//10秒,且第9,10秒屬于老年期細胞不再分裂,問從第1個細胞出生后的第N秒,總共存 //
//在多少個細胞? //
//解題思路:先建立一個數組用于存放各個年齡的細胞數,然后一次給每個細胞依照題意//
//增加歲數,并生出新細胞 //
//作者:王仁鑾 //
//日期:2004-03-21 //
//QQ:13633497 Email:wrl_001@tom.com //
////////////////////////////////////////////////////////////////////////////////
unit Unit2;
interface
function GetCellNum(Num: word): LongWord;
implementation
function GetCellNum(Num: word): LongWord;
var //注釋中假象細胞一秒為一歲
i:word;
j:byte;
TempNum:word;
Cell:array[0..9] of word;
begin
if Num<3 then
begin
Result:=1;
Exit;
end; //若執行下面的語句則初始化數據:一歲的細胞為零,兩歲的細胞為一個
Cell[0]:=0;
Cell[1]:=1;
for j:=2 to 9 do
Cell[j]:=0;
for i:=3 to Num do
begin
TempNum:=0;
Cell[9]:=Cell[8];//原本10歲的細胞死去,8,9歲的細胞長為9,10歲且不再生子細胞
Cell[8]:=Cell[7];
for j:=7 downto 2 do
begin
Cell[j]:=Cell[j-1];//原本2至7歲的細胞長一歲且生了一個子細胞
TempNum:=TempNum+Cell[j];//本輪中生出的子細胞總數TempNum;
end;
Cell[1]:=Cell[0];//一歲的子細胞長為兩歲
Cell[0]:=TempNum;//新生的子細胞
end;
Result:=0;
for j:=0 to 9 do
Result:=Result+Cell[j];//
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -