2023-09-01每日一题
一、题目编号
2240. 买钢笔和铅笔的方案数
二、题目链接
点击跳转到题目位置
三、题目描述
给你一个整数 total ,表示你拥有的总钱数。同时给你两个整数 cost1 和 cost2 ,分别表示一支钢笔和一支铅笔的价格。你可以花费你部分或者全部的钱,去买任意数目的两种笔。
请你返回购买钢笔和铅笔的 不同方案数目 。
示例 1:
示例 2:
提示:
- 1 <= total, cost1, cost2 <= 106
四、解题代码
class Solution {
public:
long long waysToBuyPensPencils(int total, int cost1, int cost2) {
int n = total / cost1;
long long cnt = 0;
for(int i = 0; i <= n; ++i){
int now_money = total - i * cost1;
cnt += (now_money / cost2 + 1);
}
return cnt;
}
};
五、解题思路
(1) 首先用total / cost1获得最多可以买多少支钢笔。然后遍历0~该数字。
(2) 计算出购买钢笔后有now_money钱,然后用now_money / cost2 + 1可以得到购买该数目的钢笔条件下可以买多少支铅笔。
(3) 如此枚举,最后返回结果即可。