第五週學習總結(宋曼琦組)
阿新 • • 發佈:2021-10-23
第五週
本週主學習了遞迴與陣列
總結如下:
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輸出