小易去附近的商店買蘋果,奸詐的商販使用了**交易,只提供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 不為...