回覆列表
-
1 # 使用者4335227392800
-
2 # ysidk47018
費波納切數列,更通用的音譯是斐波那契數列,又稱黃金分割數列,指的是這樣一個數列:0、1、1、2、3、5、8、13、21、……數學上的定義是F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)用一個數組把每項的值儲存下來,然後依次計算。事實上,只需要知道前兩個值,就可以知道下一個值,這樣儲存兩個值就可以計算出第三個值了。於是求斐波那契數列第n項的函式也可以寫作:以上是求斐波那契數列的三種常見的方式。值得注意的一點是,實際使用中要注意使用型別的範圍,不要溢位。比如在這幾個程式中使用的是最簡單的int型別,最大可以計算到F(46), 而F(47)已經超過了int所能表達的範圍,會發生溢位。如果需要更大的值,那麼就要改成使用更多位元組的型別。比如long long等。
#include<stdio.h>
int main(void){
int a1,a2,d; //a1:首項;a2:末項;d:公差
int sum =1; //sum:等差數列和;n:項數
int n = 1;
scanf("%d%d%d",&a1,&a2,&d);
n = (a2-a1)/d+1; //項數=(末項-首項)÷公差+1
sum = n*(a1+a2)/2; //和=(首項+末項)×項數÷2
printf("%d\n",sum);
return 0;
}