题目描述

小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。

输入描述:

输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果

输出描述:

输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1
示例1

输入

20

输出

3

/*
动态规划,dp[i]表示购买i个苹果所需的最小袋数。初始化为dp容器为INT_MAX(也可以自己定义一个值)。从1苹果开始遍历,
若dp[i]为INT_MAX,表示无法购买该个数的苹果,直接开始下次循环。若dp[i]不为INT_MAX,表示该个数的苹果可以购买,
进行动态规划求解。动态规划的转移方程为:dp[i+j] = min(dp[i]+1,dp[i+j])           //j为6或8
dp[6] = 1
dp[8] = 1
*/
#include<iostream>
#include<vector>
using namespace std;
#define maxVal 101int main(){int n;while(cin>>n){vector<int> dp(n+1,maxVal);dp[6]=1;dp[8]=1;for(int i=1;i<n;i++){if(dp[i]==maxVal)continue;else{if(i+6<=n)  dp[i+6]=min(dp[i+6],dp[i]+1); if(i+8<=n)  dp[i+8]=min(dp[i+8],dp[i]+1);}} if(dp[n]==maxVal)cout<<"-1"<<endl;elsecout<<dp[n]<<endl;}}/*常规方法:不够高效
#include<iostream>
using namespace std;int main()
{int n;while (cin >> n){int maxOfx=n/6;int maxOfy=n/8;int i,j;for(i=maxOfy;i>=0;i--){for(j=0;j<=maxOfx;j++){if(i*8+j*6>=n)break;}if(i*8+j*6==n)break;}if(i==-1&&j==maxOfx+1)  //如果遍历了所有的情况,没有满足条件的就输出-1cout<<"-1"<<endl;elsecout<<i+j<<endl;}return 0;
}
*/

买苹果---动态规划相关推荐

  1. 网易2017年秋招买苹果

    小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分). 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带.如果不能购买恰好n个苹果,小易将不 ...

  2. C++每日一练:买苹果(两种解法)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.题目 二.题目分析 三.代码 总结 一.题目 题目描述: 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每 ...

  3. 超市买苹果变量的定义和使用

    # 1. 定义苹果的单价 price = 8.5# 2. 挑选苹果 weight = 7.5# 3. 计算付款金额 money = weight * price# 4. 只要买苹果,就返回 5 块钱 ...

  4. 《网易编程题》买苹果

    题目描述 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分). 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带.如果不能购买恰好n个苹果 ...

  5. 2017年网易校招题 买苹果

    题目描述 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分). 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带.如果不能购买恰好n个苹果 ...

  6. 练习答案-分支与循环-超市买苹果练习-猜数字小游戏

    超市买苹果,初始版 需求 参考代码 # 苹果价格 多少钱一斤 price = 5# 买家购买数量 num = int(input("需要买几斤苹果"))# 总价格 total_pr ...

  7. 苹果双卡双待是哪一款_等12 mini还是买苹果11?实体店老板给出了答案,很有道理!...

    原标题:等12 mini还是买苹果11?实体店老板给出了答案,很有道理! 今年的苹果四款手机,你们会选择哪一款呢?或许已经有很多人都已经选择了iPhone12/Pro,因为这俩机型卖得很火爆,不过个人 ...

  8. [java编程题]买苹果

    题目描述 链接:https://www.nowcoder.com/questionTerminal/61cfbb2e62104bc8aa3da5d44d38a6ef 小易去附近的商店买苹果,奸诈的商贩 ...

  9. NewCoder:买苹果

    题目来源 https://www.nowcoder.com/questionTerminal/61cfbb2e62104bc8aa3da5d44d38a6ef 题目描述 小易去附近的商店买苹果,奸诈的 ...

最新文章

  1. ldd查看可执行程序的依赖库
  2. IOS树视图学习总结
  3. IT人员健康信号之肠胃保养
  4. 码牛安卓移动互联网高级开发正式课
  5. ubuntu linux下面运行《暗黑破坏神2》和英雄无敌3-死亡阴影
  6. 阿里云深圳数据中心正式开放
  7. spring 线程池_Spring线程池服务
  8. ado.net mysql 连接池_ADO.NET数据库连接池的介绍 | 学步园
  9. python钻石数据分析_数据分析该用什么工具?
  10. [leetcode](4.21)4. 有效子数组的数目
  11. python实现tsinghua-tencent 100000数据集的json文件转为xml文件
  12. pat1045. Favorite Color Stripe (30)
  13. 在MyEclipse(2015)中上传项目到github的步骤(很详细)
  14. springcloud 服务调用的两种方式
  15. 【嵌入式系统开发19】理解嵌入式实时操作系统,以uc/OS为例利用C8T6完成LED周期闪烁以及串口周期输出
  16. 每日一题 | 数学神童的红眼睛与蓝眼睛问题
  17. 使用CSS画一个萌萌的大白
  18. 服务器光盘的正确使用方法,使用光盘刻录服务器,自动备份数据到光盘(成功案例)...
  19. zzuli 1787: 生化危机 (bfs与dfs)
  20. nodejs下载及安装(windows)

热门文章

  1. Replication Backlog
  2. 计算机毕业设计中用Java实现商场库存清单案例
  3. vue 判断两对象是否一致_vue - 比较两个Json对象是否相等
  4. 服务器上文件夹没有共享,服务器没有共享文件夹
  5. keepalived 多个应用_Keepalived高可用软件概述
  6. python sep参数_Python 3.3:分离参数(sep)给出
  7. mysql的知识_mysql基础知识
  8. 同时生成 Release版和Debug版DLL的方法
  9. win7 64 php5ts.dll,windows7 64位 php5.3安装php_mongo.dll方法
  10. java lock代码写法_[代码全屏查看]-java lock的使用