Re: [請益] 菜鳥面試round1
※ 引述《nilcc (展~)》之銘言:
: 筆試題目4題 第一題是 1.1.2.3.5.8.13.... 寫出程式可以算出第N個數為何
: 我main方法裡寫了
: int d=20;
: int a=1;
: int b=0;
: for(int i=0;i<d;i++) {
: int c=a+b;
: System.out.println( c )
: a=b;
: b=c;
: }
: 他問我有辦法 直接知道n的值嗎? 還是一定要跑迴圈
: 我說把System.out.println( c )寫在for外面嗎?
: 他說就這樣?
: 後來回家才發現有遞迴寫法@@
請問直接知道N的值是什麼意思? 是指算都不用算,查也不用查就知道N嗎?
N怎麼看都像是user-defined的數字
這是一個發散的數列.....我只知道 f(N+1)/f(N)是個定值,印象中是1.618
難道用遞迴寫就可以直接知道N?
小弟實在不太懂"直接知道N"這句話什麼意思@@"
另外分享一個迴圈寫法
int a=0, b=1;
for(int i=0; i<N; i++)
{
a+=b;
b+=a;
}
printf("%d",a); //或者printf("%d",b) 看怎麼定義第N項
-------------------------------------------
補充,剛在WIKI上看到f(N)的closed form,他應該是要問這個吧?
#define Q = 1.618.......
f(N) = (Q^N-(1-Q)^N)/sqrt(5);
所以不用迴圈也不用遞迴就能知道f(N)....果然還是數學家強大@@"
不過f(N)需再進一步近似成整數就是了
--
fight for dreams
fight for love
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.221.113
※ 編輯: truesword 來自: 140.115.221.113 (04/21 23:58)
→
04/22 00:21, , 1F
04/22 00:21, 1F
推
04/22 00:37, , 2F
04/22 00:37, 2F
推
04/22 01:24, , 3F
04/22 01:24, 3F
→
04/22 01:25, , 4F
04/22 01:25, 4F
推
04/22 19:55, , 5F
04/22 19:55, 5F
推
04/23 09:58, , 6F
04/23 09:58, 6F
推
04/25 16:30, , 7F
04/25 16:30, 7F
推
02/26 20:43, , 8F
02/26 20:43, 8F
討論串 (同標題文章)