每年过年的时候,小明总是要为新学期准备很多的水笔。今天商店搞活动,每满 5 支 赠送 1 支,若满了 20 支则赠送 5 支,每支水笔 5 元钱。小明一共带了 n(n>10)元钱,希 望能买到最多的水笔,请你帮他算算,他最多能买到多少支?java来解决
时间: 2024-09-22 16:02:10 浏览: 64
一年级数学上册《小明的一天》教学课件(1)(新版)北师大版.ppt
为了帮小明计算最多能买到多少支水笔,我们可以分两部分来考虑:
1. 如果买不到整数倍的5支,那么可以先按照每满5支送1支的方式购买,直到剩下的钱不足以再凑5支为止。这样每次购买会多得一支,总共可以用n元除以单支价格5元得到的基本数量。
2. 当基本数量达到20支后,由于会有额外赠送,我们还需要查看剩余的钱是否足够获得5支的赠送。如果够,那就再多买5支;不够,则按实际剩余金额继续购买,直到所有钱花完。
以下是Java代码来实现这个算法:
```java
public int maxPens(int n) {
int basePens = n / 5; // 基础购买的数量
n %= 5; // 计算剩余的钱
if (n >= 5) { // 判断是否有足够的钱买5支并赠送
basePens += 5;
n -= 5;
}
while (n > 0 && basePens + 1 <= 20) { // 看看能不能再额外买一支
basePens++;
n -= 5;
}
return basePens;
}
```
在这个函数`maxPens`中,输入变量`n`代表小明带的钱,返回值即是他最多能买到的水笔总数。
阅读全文