演算法題 買蘋果

2021-08-01 22:41:31 字數 909 閱讀 4535

小易去附近的商店買蘋果,奸詐的商販使用了**交易,只提供6個每袋和8個每袋的包裝(包裝不可拆分)。 可是小易現在只想購買恰好n個蘋果,小易想購買盡量少的袋數方便攜帶。如果不能購買恰好n個蘋果,小易將不會購買。

輸入描述:

輸入乙個整數n,表示小易想購買n(1 ≤ n ≤ 100)個蘋果

輸出描述:

輸出乙個整數表示最少需要購買的袋數,如果不能買恰好n個蘋果則輸出-1

輸入例子:

20輸出例子:

3

動態規劃:

f(i)表示買i個蘋果最少需要購買的袋數f(

i)=m

in⎧⎩

⎨f(i

−6)+

1f(i

−8)+

1若f(

i−6)

!=−1

若f(i

−8)!

=−1

#include 

#include

#include

#include

#include

using

namespace

std;

int func(int n)

vector

vec;

vec.resize(101, 999);

vec[0] = 0;

for (auto i = 0; i < 101;i++)

if (i+8

<101)}}

if (vec[n]==999)

else

} int main()

程式設計題 買蘋果

小易去附近的商店買蘋果,奸詐的商販使用了 交易,只提供6個每袋和8個每袋的包裝 包裝不可拆分 可是小易現在只想購買恰好n個蘋果,小易想購買盡量少的袋數方便攜帶。如果不能購買恰好n個蘋果,小易將不會購買。輸入描述 輸入乙個整數n,表示小易想購買n 1 n 100 個蘋果 輸出描述 輸出乙個整數表示最少...

程式設計題 買蘋果

小易去附近的商店買蘋果,奸詐的商販使用了 交易,只提供6個每袋和8個每袋的包裝 包裝不可拆分 可是小易現在只想購買恰好n個蘋果,小易想購買盡量少的袋數方便攜帶。如果不能購買恰好n個蘋果,小易將不會購買。輸入描述 輸入乙個整數n,表示小易想購買n 1 n 100 個蘋果 輸出描述 輸出乙個整數表示最少...

網易買蘋果

採用動態規劃求解。思路同本文中前面的程式設計題 跳石板。建立乙個vector容器steps,steps i 表示購買i個蘋果所需的最小袋數。初始化為steps容器為int max。從1蘋果開始遍歷,若steps i 為int max,表示無法購買該個數的蘋果,直接開始下次迴圈。若steps i 不為...