2240.买钢笔和铅笔的方案数
链接:2240.买钢笔和铅笔的方案数
难度:Medium
标签:数学、枚举
简介:给你一个整数 total ,表示你拥有的总钱数。同时给你两个整数 cost1 和 cost2 ,分别表示一支钢笔和一支铅笔的价格。你可以花费你部分或者全部的钱,去买任意数目的两种笔。请你返回购买钢笔和铅笔的 不同方案数目 。
题解 1 - python
- 编辑时间:2023-09-01
- 执行用时:664ms
- 内存消耗:16MB
- 编程语言:python
- 解法介绍:同上。
class Solution:
    def waysToBuyPensPencils(self, total: int, cost1: int, cost2: int) -> int:
        idx1 = res = 0
        while idx1 * cost1 <= total:
            res += 1 + (total - idx1 * cost1) // cost2
            idx1 += 1
        return res
题解 2 - rust
- 编辑时间:2023-09-01
- 执行用时:12ms
- 内存消耗:2.04MB
- 编程语言:rust
- 解法介绍:同上。
impl Solution {
    pub fn ways_to_buy_pens_pencils(total: i32, cost1: i32, cost2: i32) -> i64 {
        let (total, cost1, cost2, mut idx1, mut res) = (
            total as i64, cost1 as i64, cost2 as i64,
            0i64, 0i64
        );
        while idx1 * cost1 <= total {
            res += 1 + (total - cost1 * idx1) / cost2;
            idx1 += 1;
        }
        res
    }
}
题解 3 - cpp
- 编辑时间:2023-09-01
- 执行用时:16ms
- 内存消耗:5.9MB
- 编程语言:cpp
- 解法介绍:枚举。
class Solution {
public:
    long long waysToBuyPensPencils(int total, int cost1, int cost2) {
        long long idx1 = 0, res = 0;
        while (idx1 * cost1 <= total) {
            res += 1 + (total - idx1 * cost1) / cost2;
            idx1 += 1;
        }
        return res;
    }
};