当前位置: 首页 > news >正文

蓝桥杯 2240. 买钢笔和铅笔的方案数c++解法

        最近才回学校。在家学习的计划不翼而飞。但是回到学校了,还是没有找回状态。

        现在是大三了,之前和同学聊天,说才大三无论是干什么,考研,找工作,考公,考证书 还都是来的及的。        但是心里面有点慌 还要学习的东西太多了,离找工作的标准还很远,考研的话英语又是道坎。    也许是越使人痛苦的东西自己越想去逃避。不去想,也许就不会发生了。这种行为使我感到很大的罪恶感,通过去玩游戏,发呆,看小说,听音乐去逃避现实。麻木自己的内心感到的充足,逃避现实。

        所以要改变 那就现在。

题目

给你一个整数 total ,表示你拥有的总钱数。同时给你两个整数 cost1 和 cost2 ,分别表示一支钢笔和一支铅笔的价格。你可以花费你部分或者全部的钱,去买任意数目的两种笔。

请你返回购买钢笔和铅笔的 不同方案数目 。

示例 1:

输入:total = 20, cost1 = 10, cost2 = 5
输出:9
解释:一支钢笔的价格为 10 ,一支铅笔的价格为 5 。
- 如果你买 0 支钢笔,那么你可以买 0 ,1 ,2 ,3 或者 4 支铅笔。
- 如果你买 1 支钢笔,那么你可以买 0 ,1 或者 2 支铅笔。
- 如果你买 2 支钢笔,那么你没法买任何铅笔。
所以买钢笔和铅笔的总方案数为 5 + 3 + 1 = 9 种。

示例 2:

输入:total = 5, cost1 = 10, cost2 = 10
输出:1
解释:钢笔和铅笔的价格都为 10 ,都比拥有的钱数多,所以你没法购买任何文具。所以只有 1 种方案:买 0 支钢笔和 0 支铅笔。

提示:

  • 1 <= total, cost1, cost2 <= 10

 思路 

很简单的一道题

先比较两个商品的价格,先买0个const1 在用剩下的钱看可以买几个const2  将(total-num*cost1)/cost2+1;结果进行累加 ,在买1个const1..... 直到剩下的钱不能买num个const1为止。

循环计算的方法来解决买钢笔和铅笔的方案数问题。具体解释如下:

  1. 首先检查cost1和cost2的大小关系如果cost1大于cost2,则交换它们的值,以确保cost1表示价格较低的钢笔。

  2. 初始化变量num和sum,分别用于迭代计数和累计方案数。

  3. 使用一个while循环,当num乘以cost1小于等于total时进行迭代。

  4. 在循环体内,计算剩余钱数(total-num*cost1)除以cost2,并加1,表示可以购买的铅笔的数量。将该数量累加到sum中。

  5. 将num增加1,继续下一轮循环。

  6. 当循环结束后,返回sum,即为购买钢笔和铅笔的不同方案数。

该方法的思路是遍历钢笔数量num,计算每个num对应的铅笔数量,然后累加到总方案数sum中。时间复杂度为O(total/cost1)。

class Solution {
public:long long waysToBuyPensPencils(int total, int cost1, int cost2) {if(cost1<cost2)return waysToBuyPensPencils(total,cost2,cost1);long num=0,sum=0; //注意num的范围用long进行定义防止溢出while(num*cost1<=total){sum+=(total-num*cost1)/cost2+1;num++;}return sum;}
};

 

http://www.lryc.cn/news/150491.html

相关文章:

  • 中间件环境搭建配置过程解读
  • Pytest 自定义HOOK函数
  • VUE笔记(六)vue路由
  • nginx反向代理 负载均衡
  • hugging face inference API返回内容太短的问题
  • react中redux的详细使用以及持久化处理
  • 论文笔记: 循环神经网络进行速度模型反演 (未完)
  • 多维时序 | Matlab实现BiLSTM-Adaboost和BiLSTM多变量时间序列预测对比
  • excel绘制直方图
  • react-grid-layout 实现原理介绍
  • 集合框架-(Collection/Map)
  • 什么是单文件组件?
  • 国际站阿里云服务器多久会重启一次系统??
  • 低成本32位单片机电动工具无感方波控制方案
  • 安防视频监控/视频集中存储/云存储平台EasyCVR平台无法播放HLS协议该如何解决?
  • MySQL如何查找某个字段值相同的数据
  • 8.react18并发模式与startTransition(搜索高亮思路)
  • 前端Vue自定义得分构成水平柱形图组件 可用于系统专业门类得分评估分析
  • Linux获取纳秒级别时间
  • CSS中你不得不知道的盒子模型
  • 知识储备--基础算法篇-数组
  • zookeeper 理论合集
  • 【pyinstaller 怎么打包python,打包后程序闪退 不打日志 找不到自建模块等问题的踩坑解决】
  • 【Docker】网络
  • Linux :realpath 命令
  • react17:生命周期函数
  • 腾讯内部单边拥塞算法BBR-TCPA一键脚本安装
  • 【LLM】chatglm-6B模型训练和推理
  • 性能可靠it监控系统,性能监控软件的获得来源有哪些
  • TCP/IP网络编程(一) 理解网络编程和套接字