看板 Soft_Job 關於我們 聯絡資訊
※ 引述《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)
wait999:這公式在離散裡面看過 04/22 00:21
tbof:Q正確的值是 (1+squrt(5))/5 04/22 00:37
bobju:那主管是想試探一下原po有沒有修過離散數學吧? 04/22 01:24
bobju:她不要你只會寫程式,妳要你懂得運用理論來解問題. 04/22 01:25
yauhh:你這個問題...仔細看Wikipedia吧,他們就是在討論這回事 04/22 19:55
CRPKT:這是正解吧, 改遞迴就掉進陷阱了 04/23 09:58
MephistoH:是在考數學嗎? 04/25 16:30
ECMA:這題會應該就錄取了吧XD 02/26 20:43