關於Fibonacci 的 一道 C 問題

時間 2023-08-11 22:44:42

1樓:匿名使用者

#include

using namespace std;

int main()

int num;

cout 《輸入乙個數字(給個上限) "

cin >>num;

int a = 10, /原始。

b = 10, /第5天的。

tmp;cout tmp = a;

a = b; /a = b

b = tmp + b; /b = a + bcout

2樓:栩箭

這東西。由於輸入上限的問題, 直接影響了資料結構。

也不清楚你要算到什麼程度。 如果要算個百八十天, 甚至一兩年後的結果, 程式的資料結構勢必會複雜不少。

c語言fibonacci數列問題

3樓:小

該問題屬於fibonacci取餘的問題。

解法如下:需要注意的是:

1:這道題目,建議用臨時變數,沒必要用陣列存數列,因為題目不關心數列,只關心取餘,也無法知道要設定多大的陣列合適,設定小了,陣列溢位,設定大了,影響記憶體(特別是像這樣定義了這樣的大陣列data[20000],在之後的找工作,面試是很被動,很容易被刷);

2:為了防止n太大,f(n) 的值導致int存不下,可分步取餘(c=(a+b)%10007),然後再加,再取餘;

f(n-1)=(f(n-2)+f(n-3) )10007f(n-2)=(f(n-3)+f(n-4) )10007f(n)=(f(n-1)+f(n-2) )10007

4樓:暴血長空

顯然是3呀:第一項和第二項都是1,所以第三項是2,第四項就是3啦,執行結果也對!不過你的程式有錯誤:

#include

long f(int y)

main( )

c語言fibonacci數列問題

5樓:擁抱

錯誤不少。

定義陣列a的時候,為了確保陣列獲得可靠、可信的記憶體單元,陣列的長度必須是乙個確定的值,所以變數n還不確定的時候,不能定義為a[n]。否則的話,陣列a中的元素是不確定的,不能直接使用,而且雖然可以使用a[下標]來讀取到乙個值,但是這樣的操作是很危險的,因為讀取到的這個值或許是其它程式或系統正在使用的記憶體單元的值,要是再對a[下標]賦值來改變了這個值的話,還會影響到其它程式或系統,產生危害其它程式或系統正常執行的隱患。

unsigned long int型,匹配的格式符是%ld。

for迴圈裡,使用對a[n]賦值存在隱患,具體就是上面第1點說的,因為在定義陣列a的時候,並沒有為陣列a分配乙個獨立的記憶體空間。

語句「return 0」的末尾,缺少了分號。

其實可以不用定義陣列,只要定義3個變數能夠參與運算就可以了,示例**如下,#include

int main()

printf("%ld", an % 10007);

return 0;

如有幫助,煩請點採納,謝謝!

6樓:丿艾瑞灬莉婭

提示得很清楚了,直接求fn肯定是溢位的,下面是我的ac**#include

int main()

printf("%d", fn);

return 0;}

7樓:匿名使用者

除了a[n]其他設定為int型別就夠了。最後的printf裡改成%llu。(我也忘了是不是%llu 反正%d最多只能輸出int型別的最大值肯定錯)

8樓:網友

return 0語句後面缺少分號;

c語言fibonacci數列問題,想了半天不知道怎麼弄,,望指教

9樓:sshhff鳳

根據它的數學表示式來編寫乙個遞迴函式f,再呼叫f來計算序列總和就可以了。

以下是在手機上用易歷知食軟體裡的微c程式設計來編寫的乙個示例,供參考。

手機上的完整**如下圖:

手機上執行的結果如下圖:

c問題,fibonacci數列.

10樓:科創

分類: 電腦/網路 >>程式設計 >>其他程式語言。

問題描述:求fibonacci數列信握中大於t(t>3)的最小的乙個數,其中fibonacci數列定義為:

f(0)=0,f(1)=1

f(n)=f(n-1)+f(n-2)

當t=1000時,值為1597.

fibonacci數列。是什麼數列?

上面式子又是什麼意思?怎麼理解?

解析: 這可是乙個自然界非常奇妙的數列,但是她的形式又是如此的簡捷。這個數列是這樣定義的:

定義。fibonacci數列f(n)是由下面的正整數組成的序列:

它的第一項(n=1)和第二項為1,即f(1)=f(2)=1

其後的每一項為前兩項的和,即f(n) =f(n-1)+f(n-2), 其中n >滑敬慶= 3

有的時候也在上面的定義中補上f(0)=0,把遞迴定義往前推一步,這稿前就是你上面的式子:

定義fibonacci數列f(n)是由下面的自然數組成的序列:

f(0)=0, f(1)=1,f(n) =f(n-1)+f(n-2), n >=2

c語言的一道關於陣列的程式設計題,C語言 一道一維陣列的程式設計題

演算法 魔方陣的排列規律 奇數陣 將1放在第一行中間一列。從2開始直到n n止各數依次按下列規則存放 每乙個數存放的行比前乙個數的行數減1,列數加1。如果上乙個數的行數為1,則下乙個數的行數為n,列數加1。如果上乙個數的列數的n時,下乙個數的列數為1,行數減1。如果按上面的規則確定的位置上已有數,或...

C語言的一道題求幫忙解答,關於c語言的一道題,求c高手幫忙解答 謝謝啦

include void swap int a,int b int t a a b b t int main void int a 3 n,i 0 scanf d n while n a i n 10 n 10 if a 1 a 0 swap a 1 a 0 if a 2 a 0 swap a 2 ...

C語言關於指標的一道題,C語言關於指標的一道選擇題

sum sum p 二維陣列的指標不是怎麼用的吧 直接加個一就相當於指向了第二行的首位址了 printf 5.2f p n 1 i c語言關於指標的一道選擇題 d 第一次列印 p 先取值後 也就是列印完p的位址才偏移的。k p,那麼 k就等價於 p,所以列印的是第二個陣列的值 c語言指標的一道題 岔...