費式數列的定義:
F(0)=0
F(1)=1
F(n)=F(n-1)+F(n-2)
由定義我們可以得知以下的數列:0,1,1,2,3,5,8,13,21,34,55,89,144,......
給一個整數N,請輸出第N個費波納西數。
輸入:
輸入包含一個整數N。
輸出:
如果N>=0,輸出第N個費波納西數。
如果N<0,輸出錯誤訊息"invalid input."
範例輸出:
程式碼:
#include<stdio.h> int main() { int n; long long int ans[100] = {0}; printf("enter number: "); scanf_s("%d", &n); if (n < 0) printf("invalid input"); else { if (n == 1) printf("%dst ", n); else if (n == 2) printf("%dnd ", n); else if (n == 3) printf("%drd ", n); else printf("%dth", n); printf("fibonacci number is: "); for (int i = 0; i <= n; i++) { if (i <= 1) ans[i] = i; else ans[i] = ans[i - 1] + ans[i - 2]; } printf("%lld", ans[n]); } }
筆記:
因為輸出結果可能會很大,所以要用long long int 來儲存。
費式數列的值可以參考這篇。
另外,這題是在電腦上demo,所以可以直接加起來,不用考慮效率問題。
沒有留言:
張貼留言