top1编程
← 返回题目
题解

买练习本

1 条题解

  • 0
    @ 2026-8-4 2:01:46

    解题思路

    小明带了 money 元去买练习本,每本 price 元,要买 num 本。问钱够不够。

    先算出总花费:总价 = 单价 × 数量 = price * num。

    然后把总价和带的钱比较:

    • 如果 money >= price * num,钱足够,输出 1;
    • 否则钱不够,输出 0。

    例如样例 money=100、price=9、num=11:总价是 9 × 11 = 99,99 不超过 100,所以钱够,输出 1。

    注意"够"的意思是钱刚好等于总价也算够,所以要用 >=(大于等于),而不是 >。如果写成 >,刚好够钱的情况(比如带 99 元、总价恰好也是 99 元)就会被错判成不够,这是这道题最容易踩的坑。

    另一个容易错的地方是把钱数和单价弄反。读入的三个数顺序是:所带的钱、本子的单价、数量,读的时候要和变量对应好,否则算出来就全错了。

    这道题是"比较两个数大小"的典型应用:先把要花的钱算出来,再和手里的钱比一比。以后遇到"够不够""行不行"这类问题,都可以先算一算、再比一比。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int money, price, num;   // money 带的钱,price 单价,num 数量
        cin >> money >> price >> num;   // 按顺序读入
    
        int cost = price * num;   // 买 num 本一共要花多少钱
    
        if (money >= cost) {   // 钱够(刚好等于也算够)
            cout << 1 << endl;
        } else {               // 钱不够
            cout << 0 << endl;
        }
        return 0;
    }
    

    复杂度分析

    只读入 3 个数,做一次乘法和一次比较,运算次数固定。时间复杂度和空间复杂度都是 O(1)。

    • 1