這樣的數列,第1個是1,第2個是1,第3個是2,後面的每乙個數,都是它前面兩個數之和。求:到第1997個數時,這些數中能被5整除的共有多少個?
要解決這個問題,用python直接計算並計數,可以是這樣的:
i=
3mycount=
0num1=
1num2=
1num3=num1+num2
while i<
1998
:#定義數的範圍
num1=num2
num2=num3
num3=num1+num2
i+=1if num3%5==
0:#判斷是否為5的倍數
mycount+=
1print
(mycount)
這樣做,也能算出結果,但計算量較大,這個數列到1997位時,已經是近400位的數。
從數學上要判斷乙個數是5的倍數,只需要判斷它的個位數是否為0或5,於是有了下面的修正後的**:
i=
3mycount=
0num1=
1num2=
1num3=num1+num2
while i<
1998
: num1=num2
num2=num3
if num1>10:
num1=num1%
10if num2>10:
num2=num2%
10 num3=num1+num2
if num3>10:
num3=num3%
10 i+=
1if num3%5==
0:mycount+=
1print
(mycount)
執行**,計算出結果為399。
也就是說:在斐波拉契數列裡,第1997個數前面,能被5整除的數一共有399個。
小學奧數思維訓練題(二)
同學和老師共16人去郊遊,有男同學 女同學 男老師 女老師。出發前,清點了一下人數,發現 學生比老師人數多 男老師比男同學人數多 男同學比女同學多 女同學比女老師多 問 女同學有多少人?分析 從題中可以得到以下資訊 男同學 女同學 男老師 女老師 老師人數 16 2 8 男老師 男同學 女同學 女老...
小學奧數思維訓練題(三)
甲 乙兩人分別從相距 300 公尺的 a b 兩地同時出發,相向而行,已知甲的速度為乙的 2 倍。那麼,甲 乙第一次相遇的地點距離 ab 中點 公尺。分析 相遇問題中比較基礎的典型問題。兩人同時出發,意味著 到相遇的時候,兩人行進的時間是相同的 而甲的速度是乙的 2 倍,意味著 甲行進的距離是乙的 ...
小學奧數思維訓練題(四)
有乙個雇主約定每年給工人 60 元錢和一件衣服,工人做到 7 個月的時候想要離開,雇主給了他 25 元錢和一件衣服。這件衣服值多少錢?分析 方法一 分數思路 一年 12 個月,要給 60 元錢和 一件衣服,就是說 每個月要給 錢 60 12 5 元 衣服 1 12 1 12 件 就是把衣服裁成 12...