作者EdisonX (閉上眼的魚)
看板C_and_CPP
標題Re: [問題] 我這樣很爛嗎?
時間Mon Sep 3 16:51:11 2012
我只是來討論而已。
※ 引述《damody (天亮damody)》之銘言:
: ※ 引述《skizzy (活著是件難過的事)》之銘言:
: : for (x=0; x<720; x++)
這裡我覺得有爭議說,午夜十二點我看過是 12:00 (am) , 也看過 00:00(am)。
: 這應該可以分成
: if (a==b)
: {
: if (a==c)
: {
: ...
: }
: else
: {
: ...
: }
: }
: else
: {
: ...
: }
我大概會偷懶這麼做吧
int Dig[10] = {0};
++Dig[a] ;
++Dig[b] ;
++Dig[c] ;
++Dig[d] ;
if(Dig[c]==3 || Dig[d]==3) Counter+=1;
// Counter = Counter + (Dig[c]==3 || Dig[d]==3); // 看到炫技的就別理它了。
---------------
其實還有加速技巧啦,和 數字謎(不知道什麼叫數字謎大概猜你也沒興趣知道吧)
的分析方式一樣,
只是面試那麼短的時候大概不會讓你去想。
用最基礎的加速技巧來說
拿 ab:cd 來講
(1) hour 如果兩位數已經相等的話 (a==b)
(1.1) 考量 a=c(d=0~9) 10種狀態,
a=d(c=0~5) 有6種情況 , counter+16
(1.2) 考量 a=c=d 的情況,多計算一次, counter-1
(1.3) 這小時已經計算完成了,所以直接跳到下一個小時,也就是
loop 裡的 x 直接加60。
(1.4) 所以 hour 兩位數相等的話, counter = counter + 19
(2) hour 如果兩位數不相等的話 (a!=b)
(2.1) 考量 a=c 且 a=d,只有一種情況, counter+1
(2.2) 再考量 b=c 且 b=d ,也只有一種情況,counter+1
但值得注意的是當 b=6~9 的時候,b=c 這一定不成立,
所以 counter 必須視條件 +1。
(2.3) 這小時算完了,counter = counter + 1 + (b<6) ,
直接跳到下一個小時,loopo 裡的 x 直接加60。
上面歸納的結果其實已經可以用筆算算出來了。
即使使用 loop , 原本要算 720 次的東西,
上面的跑法其實只要跑 hour , 1~24 或 0~23 就行了。
: : int x,y,z,r;
: : cout << "請輸入你要出的拳種 0.剪刀,1.石頭,2.布" << endl;
這題個人覺得沒什麼技巧性就是了,
只是題目好像比較看重設計的架構和概念。
: : 3.answer:
: : cout << "Y(n)=X(n)*X(n)-X(n-1)*X(n+1)" << endl;
Yn=Xn^2-Xn-1*Xn+1
這題我反而看不出題目是要怎樣搞,
大概真的是要弄成 Y[n] = X[n]*X[n] - X[n-1]*X[n+1] 吧
: : 這樣很沒有邏輯 架構嗎?
: : 感覺很悶...
: : 是不是接下來的programmer都會被打槍Q_Q
誰沒菜過?
我面試也常收無聲卡,會當場打槍你的那才是好事,
至少不會讓你死得不明不白。
: 沒錯,太新了
: 感覺就是沒看什麼書,網路上一些教學文章看過
: 練過幾個小程式就想來面試
^^^^^^^^^^^^^^^^^^^^^^^^
我每次去面試都有這種 fu.
--
「自從我學了 C# , 人都變聰明 , 考試都考一百分」
「自從我學了 VB , 皮膚都變好 , 人也變漂亮了 」
「自從我學了 Java , 明顯變壯 , 個子也變高了 」
「自從我學了 C++ , 內分泌失調 , 頭都禿了... 」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.76.161
推 damody:教學高手 您真有耐心! 09/03 16:54
※ 編輯: EdisonX 來自: 180.177.76.161 (09/03 17:06)
推 xatier:推這位版上大前輩! 09/03 17:59
推 BlazarArc:我以為題意說的是要靠在一起的數字(in a row)? 09/04 11:52
→ EdisonX:細看題意,指的應是「一列裡面有三個或更多相同的數字」。 09/04 14:25
推 BlazarArc:in a row 不是片語連續的意思嗎? 時鐘哪來多個row XD 09/04 15:15
→ EdisonX:嗯, 應該是我誤解了吧。 09/04 17:59
→ angleevil:每次看到簽名檔,我就不想再碰c++了 09/05 21:36
→ EdisonX:p 大那張圖太貼切了 !!! 09/06 19:13
→ EdisonX:補上,是 B 大和 p 大的圖太貼切了! 09/06 19:14
推 mingtai1:第三題不是就直接簡化成(Xn-1)^2 嗎..還是我想得太簡單XD 09/08 01:15