一维数组是数组作为程序语言重要数据的入门数据类型,所以有必要多加练习以灵活掌握其运用。下面就以三个例子来强化训练其用法。
下面三个示例最好自己先设计代码试试看能不能解决问题,也检验自己的掌握程度。笔者思路不一定是最好的,只是以菜鸟自己的思考方式作为参考展示给大家。热烈欢迎童鞋们将自己的思路展示给笔者!
示例一:优惠券收集人问题。它是一个经典的统计问题,有很多实际应用。这个问题从一套对象中拿出一个对象,然后找到要将所有需要拿的对象都至少拿出来一次,需要拿多少次。为了叙述方便,以扑克牌为例。一副打乱的52张扑克牌,找出在看到每种花色都有一张出现前,需要选多少次。编写程序,模拟要得到四张不同花色的牌所需要的选取次数,然后显示选中的四张牌(有可能一张牌被选了两次)。
运行效果如右图所示:其中Spades、Hearts、Diamonds、Clubs分别代表四种花色,Ace代表1,Jack、Queen、King代表J、Q、K。
此题涉及到的问题有:1)怎么模拟牌;2)怎么模拟洗牌;3)怎么模拟抽牌;4)怎么只显示每种花色的第一张牌;5)循环的结束以什么为标志等
实现的源代码如下所示:
package Blog;
import java.util.Scanner;
public class blogTryProject {
//优惠券收集人问题,以抽牌模拟
public static void main(String[]args){
boolean flag = false;//是否继续抽牌标志位
boolean[] huaSe = new boolean[4];//花色标志位,抽到过为true
int count = 0;//抽取次数计数
//抽牌,直到四种花色都抽到为止
while (!flag) {