ETH官方钱包

切換
舊版
前往
大廳
主題

ZeroJudge - d658: 11636 - Hello World! 解題心得

Not In My Back Yard | 2018-11-19 20:21:15 | 巴幣 0 | 人氣 220

題目連結(jié):


題目大意:
一開始有一行可以印出「Hello, world!」的程式碼。現(xiàn)給定一正整數(shù)N(0 < N < 10, 001),求最少要複製貼上幾次才能印出N次的「Hello, world!!」(一次可以複製現(xiàn)有程式碼的任意行數(shù))。

當(dāng) N 為負(fù)數(shù)時,停止程式。



範(fàn)例輸入:
2
10
-1



範(fàn)例輸出:
Case 1: 1
Case 2: 4



解題思維:
經(jīng)過一些觀察,我們可以發(fā)現(xiàn)當(dāng)N:
= 1 時,次數(shù)為 0 。
= 2 時,次數(shù)為 1 。
= 3 、 4 ,次數(shù)為 2 。
= 5 ~ 8 ,次數(shù)為 3 。
……

因此當(dāng) 2 ^ ( t - 1 ) + 1 ≦ N ≦ 2 ^ t ,次數(shù)為 t 。

所以我們可以藉由取以 2 為底的對數(shù)(log),並將其數(shù)值取上高斯(無條件進(jìn)位)。即可找到上式的 t 值,最後輸出即可。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創(chuàng)作回應(yīng)

追蹤 創(chuàng)作集

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

更多創(chuàng)作