题解
买练习本
1 条题解
-
0
解题思路
小明带了 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