ETH官方钱包

創(chuàng)作內(nèi)容

1 GP

動手玩程式─少女前線失溫癥,用最少紅包換得999個紅包

作者:鴞吉│2017-12-02 01:29:54│巴幣:2│人氣:164
誠如標(biāo)題,之所以想動手打這篇文,主要是因為少女前線的失溫癥任務(wù)地圖實(shí)在有夠大。
手邊沒有練滿的嘲諷妖精的情況下,鴞吉我實(shí)在沒辦法用強(qiáng)推的方式拆木星砲。

在得知連開十個紅包按分享之後會送一個紅包的訊息之後,我不禁好奇這樣自己最少刷多少個紅包才夠開到保底的999個,以減少我在失溫癥的資源消耗。

擴(kuò)大來說,如果我想開到XXX個紅包,那麼我最開始至少要有幾個紅包?



剛開始我用很簡便的式子來計算(X代表最少要有幾個紅包):

999 = X + (X / 10)

不過今天重新審視這式子,我發(fā)現(xiàn)我並沒有考慮到(X/10)個紅包有可能大於10,那麼又可以再換一次……如此類推。


然後,我想起很久之前CPE有解過類似的題目:
已知三個空汽水瓶可以兌換一瓶汽水,若我一開始手上有X個汽水,則最後我會喝掉多少瓶汽水。



這次紅包的問題則是從結(jié)果回推到一開始會持有多少個,
我的解法便是:

我最後想開到N個紅包

當(dāng)我手裡有X個紅包,最後會開了 f(X) 個紅包
如果 f(X) < N ,用 X+1 再從新計算一次

如此類推到第k次,當(dāng) f(X+k) >= N 時,結(jié)束運(yùn)算。



(部分程式碼)
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
int iTotal;  // 總共打開的紅包數(shù)量
int iMin;    // 一開始至少有多少個紅包

int iGift;    // 手裡有X個紅包
int iExchange;    // 可以換 ( X/10 ) 個紅包
int iOpen;    // 最後打開 f ( X ) 個紅包

cin >> iTotal;    // 輸入 iTotal 個紅包 ( 假設(shè)999 )
iMin = iTotal - ( iTotal / 10 );    // 若總共999個,從900個開始找



//  f (X) 個紅包
while ( true )
{
    iGift = iMin;  //  一開始有X個紅包
    iOpen = iGift;  // 先把X個紅包打開
    
    // 10個紅包分享,換一個紅包。直到不足十個
    while ( iGift >= 10 )
    {
        iExchange = iGift / 10;  // 可換(X/10)個紅包
        iGift = iGift % 10;  // X - ( X/10 ) 個紅包沒辦法分享
        iGift = iGift + iExchange;  // 手邊多( X/10) 個紅包
        iOpen = iOpen + iExchange;  // 再打開 ( X/10 ) 個紅包
    }
    
    if ( iOpen >= iTotal)
        break;
    else //iOpen < iTotal
        iMin = iMin + 1;

}



第09行為了減少運(yùn)算的次數(shù)才選了比較偷吃步的方法,
不然 iMin邏輯上應(yīng)該是從0開始找

28-31行是我個人為了閱讀上的方便才這樣撰寫
不然14行其實(shí)可以寫成 while ( iOpen < iTotal )


總之最後的結(jié)論,
當(dāng) f(X) = 999,X = 900
代表一開始紅包有900個,最後共打開999個紅包

若five-seven的肝活打到九百分,還可以領(lǐng)460個紅包
所以實(shí)際上我只要在失溫癥打440個紅包就能收工


以上是鴞吉心血來潮又不負(fù)責(zé)任的程設(shè)時間,祝各位冬活愉快!



引用網(wǎng)址:http://www.jamesdambrosio.com/TrackBack.php?sn=3807162
All rights reserved. 版權(quán)所有,保留一切權(quán)利

相關(guān)創(chuàng)作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★desterny83 可決定是否刪除您的留言,請勿發(fā)表違反站規(guī)文字。

前一篇:【不可思議世界系列】蒼空... 後一篇:【Crossout】戰(zhàn)車...


face基於日前微軟官方表示 Internet Explorer 不再支援新的網(wǎng)路標(biāo)準(zhǔn),可能無法使用新的應(yīng)用程式來呈現(xiàn)網(wǎng)站內(nèi)容,在瀏覽器支援度及網(wǎng)站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現(xiàn)和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業(yè)系統(tǒng)版本才可使用)

face我們了解您不想看到廣告的心情? 若您願意支持巴哈姆特永續(xù)經(jīng)營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學(xué)】