Re: [請益] 菜鳥面試round1

看板Soft_Job作者 ( )時間13年前 (2011/04/21 23:39), 編輯推噓6(602)
留言8則, 7人參與, 最新討論串4/5 (看更多)
※ 引述《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
Q正確的值是 (1+squrt(5))/5
04/22 00:37, 2F

04/22 01:24, , 3F
那主管是想試探一下原po有沒有修過離散數學吧?
04/22 01:24, 3F

04/22 01:25, , 4F
她不要你只會寫程式,妳要你懂得運用理論來解問題.
04/22 01:25, 4F

04/22 19:55, , 5F
你這個問題...仔細看Wikipedia吧,他們就是在討論這回事
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
這題會應該就錄取了吧XD
02/26 20:43, 8F
文章代碼(AID): #1Di4_0GE (Soft_Job)
文章代碼(AID): #1Di4_0GE (Soft_Job)