腾讯2016招聘笔试:微信红包
题目描述:
在春节期间,小明收到了很多个微信红包。他非常开心,也想知道自己收到了多少个红包,以及红包的最大金额和最小金额是多少。
我们可以将这个问题抽象为一个算法问题。给定一个红包列表,红包列表中的每个红包都有一个金额。我们需要编写一个程序来计算红包的总个数、最大金额和最小金额。
首先,我们需要定义红包类。红包类包含一个金额属性,用来存储红包的金额。
```javaclass RedPacket {
private double amount; // 红包金额 public RedPacket(double amount) {
this.amount = amount;
}
public double getAmount() {
return amount;
}
}
```
接下来,我们可以使用一个列表来存储收到的红包。列表的每个元素都是一个红包对象。
```javaimport java.util.ArrayList;
import java.util.List;
public class WeChatRedPacket {
public static void main(String[] args) {
// 收到的红包列表 List
// 添加红包 redPackets.add(new RedPacket(10.0));
redPackets.add(new RedPacket(20.0));
redPackets.add(new RedPacket(5.0));
redPackets.add(new RedPacket(15.0));
redPackets.add(new RedPacket(12.0));
// 计算红包个数 int count = redPackets.size();
// 计算最大金额和最小金额 double maxAmount = Double.MIN_VALUE;
double minAmount = Double.MAX_VALUE;
for (RedPacket redPacket : redPackets) {
double amount = redPacket.getAmount();
if (amount > maxAmount) {
maxAmount = amount;
}
if (amount < minAmount) {
minAmount = amount;
}
}
// 输出结果 System.out.println("红包个数:" + count);
System.out.println("最大金额:" + maxAmount);
System.out.println("最小金额:" + minAmount);
}
}
```
以上程序中,我们创建了一个红包列表,其中包含了5个红包。然后,我们使用循环遍历计算了红包的总个数、最大金额和最小金额。
最后,我们将计算结果输出到控制台。运行程序,可以得到如下输出:
```
红包个数:5最大金额:20.0最小金额:5.0```
通过以上程序,我们成功地计算出了红包个数、最大金额和最小金额。
这道题目要求我们对收到的红包进行统计分析,之所以选择使用列表来存储红包,是因为列表具有动态扩容的能力,可以方便地添加和删除红包。另外,我们使用循环遍历红包列表,并同时更新最大金额和最小金额。
这个程序只是一个简单的示例,实际上我们可能需要更复杂的算法来处理更大规模的数据。但是这个题目的核心思想就是使用列表来存储红包,并通过循环遍历来进行统计分析。
总结一下,这道题目要求我们编写一个程序来统计分析微信红包。我们通过定义红包类和使用列表来存储红包,然后使用循环遍历来计算红包的总个数、最大金额和最小金额。通过这个题目的练习,我们可以掌握如何使用列表和循环来处理数据。这对于我们日后解决其他类似的问题也会有很大帮助。