2023年1月6日1,3210
description
鬼谷子非常聰明,正因為這樣,他非常繁忙,經常有各諸侯車的特派員前來向他諮詢時政。有一天,他在咸陽遊歷的時候,朋友告訴他在咸陽最大的拍賣行(聚寶商行)將要舉行一場拍賣會,其中有一件寶物引起了他極大的興趣,那就是無字天書。但是,他的行程安 排得很滿,他他已經買好了去邯鄲的長途馬車標,不巧的是出發時間是在拍賣會快要結束的時候。於是,他決定事先做好準備,將自己的金幣數好並用乙個個的小錢袋裝好,以便在他現有金幣的支付能力下,任何數目的金幣他都能用這些封閉好的小錢的組合來付賬。鬼谷子也是乙個非常節儉的人,他想方設法使自己在滿足上述要求的前提下,所用的錢袋數最少,並且不有兩個錢袋裝有相同的大於1的金幣數。假設他有m個金幣,你能猜到他會用多少個錢袋,並且每個錢袋裝多少個金幣嗎?
input
包含乙個整數,表示鬼谷子現有的總的金幣數目m。其中,1≤m ≤1000000000。
output
乙個整數h,表示所用錢袋個數
接著是具體方案.
sample input
3sample output
2錢袋個數是非常容易想到的, 即取最小的2 ^ n >= h
具體方案詳見**
(我也不知道具體為什麼是這樣做. 可以通過樣例試驗 + 遞迴思想輔助理解)
#include
#include
using
namespace
std;
int a[100000];
int main()
luogu2320 鬼谷子的錢袋
鬼谷子決定將自己的金幣數好並用乙個個的小錢袋裝好,以便在他現有金幣的支付能力下,任何數目的金幣他都能用這些封閉好的小錢的組合來付賬。求錢袋數最少,並且不有兩個錢袋裝有相同的大於1的金幣數的裝錢袋方法。做了這道題相當於長了一點經驗。我們的結論是 lceil frac rceil 和能湊成 1,lflo...
鬼谷子的錢袋(lgP2320)
主要思路 二進位制拆分。先將 m 進行二進位制拆分。注意金幣總數有限,也就是說拆分後可能會多出來一組。多出來的這組如果不是 2 n 就不需要考慮了,因為不會和前面的重複。接下來考慮重複的情況,如 m 23 可以拆為 1 2 4 8 8 於是我們直接把倆 8 變成 7 和 9 當我們需要用 8 時,直...
鬼谷子的錢袋
題目描述 鬼谷子非常聰明,正因為這樣,他非常繁忙,經常有各諸侯車的特派員前來向他諮詢時政。有一天,他在咸陽遊歷的時候,朋友告訴他在咸陽最大的拍賣行 聚寶商行 將要舉行一場拍賣會,其中有一件寶物引起了他極大的興趣,那就是無字天書。但是,他的行程安排得很滿,他已經買好了去邯鄲的長途馬車票,不巧的是出發時...