tx面試題:
已知有一頭牛4年後開始生小牛,一次只能生乙隻,問20年後一共有多少頭牛?
這種問題就是簡單的遞迴:
這頭奶牛在第四年後能不斷生子直到第二十年,其子出生4年後又能不斷生子……
**如下:
#include
using
namespace std;
intfunc
(int n)
//計算當前這頭牛在n年中能創造多少後代(包括後代的後代)
return sum;
}int
main()
法2:
其實遞推公式就是斐波那契數列f(n)=f(n-1)+f(n-3);
intf(
int n)
intmain()
法3:
利用快速冪乘矩陣演算法求解斐波那契數列。
當n很大時,用遞迴求解斐波那契數列效率是非常低的,所以要用快速冪乘矩陣演算法求解斐波那契數列。將o(n)的時間複雜度,降到o(logn)。
//第1年:1
//第2年:2
//第3年:3
//第4年:4
//第5年:6
//f(n)=f(n-1)+f(n-3)
intcountsum
(int n)
;//單位陣
long base[3]
[3]=
;//要求base矩陣的n-3次方
int num = n -3;
while
(num)
multiply
(base, base)
;//(base^2) ^ (n/2) ...(base^4) ^ (n/4)...(base^n) ^ (1)
num /=2
;}return
(res[0]
[0]*
3+ res[0]
[1]*
2+ res[0]
[2]*
1)%1000000007;}
};
快速冪 斐波那契數列
1 編寫程式,求解a b。其中b是正整數。方法1.一般求冪演算法,o r public static long power1 int a,int r if r 0 long res 1 for int i 1 i r i return res 這種使用連乘計算冪值的演算法,複雜度是o n 不過如果將...
,快速乘,快速冪,矩陣快速冪 求斐波那契數列
快速冪 方法一 首先快速冪有幾個公式 1.a b mod c a mod c b mod c ab mod c a mod c b mod c mod c 積的取餘等於取餘的積取餘 快速冪演算法依賴於一下兩個公式 a b mod c a b 2 mod c b是偶數 a b mod c a b 2 ...
矩陣快速冪 斐波那契數列
time limit 1000 ms memory limit 128 mb 通過小l的不懈努力,他即將成為大神啦,他登上了大神專屬的頒獎臺。在頒獎台上,他即將領取代表著大神的無限榮譽的勳章。小l走上頒獎台後,在台上發現了乙個製作精美的盒子。榮譽勳章就在盒子裡面。小l發現這個盒子被上了鎖,在這個盒子...