費式數列的定義:
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,所以可以直接加起來,不用考慮效率問題。

沒有留言:
張貼留言