1. 程式人生 > 其它 >第五週學習總結(宋曼琦組)

第五週學習總結(宋曼琦組)

第五週

本週主學習了遞迴與陣列

總結如下:

1.斐波那契數列第n項的三種求法

  • 普通替換值法

分析:對於n >2

需要三個變數fab1,fab2,fab3,中間變數t;

fab1與fab2賦值為1;

迴圈(從4到n,因為fab1,fab2,fab3已知)

每次迴圈依次fab1=fab2,t=fab3,fab3=fab3+fab2,fab2=t;

得到第n項值;

  • 遞迴

分析 : 遞迴需要末項,末-1項,初始項的關係

fab(n)=fab(n-1)+fab(n-2);

fab(1)=fab(2)=1;

大致程式碼如下:

int fab(int n){

if(n==1||n==2)

{return 1;}

else{

return fab(n-1)+fab(n-2);}

}

  • 陣列

分析:陣列可以儲存某項的值,但需要進行計算

可以使用迴圈計算出很大的項

n只要在其中就可以直接讀取

但佔據記憶體大

也可以使用fab[0],fab[1],fab[2] 替換第一種解法中的fab1,fab2,fab3達成一樣的效果

2.關於陣列的一些小點

  • 定義項數為n的陣列從0開始計數到n-1
  • 使用static定義陣列時可以省略陣列的值,,且這些值=0
  • 定義字元陣列時須留一位作為結束'\0'
  • 利用陣列儲存字串可以直接用%s輸出