在做一个乐透抽奖分析程序
其中一个方法要求输入一个数字 并从已知各期中奖号码中算出此数字出现的次数比如说某乐透规则为 45个球分别代表数字1~45 每次抽奖从45个数字中随机抽取6个数字组成中奖号码有以下数据{9, 16, 22, 33, 34, 37},
{4, 12, 27, 28, 29, 30},
{7, 15, 19, 21, 25, 41},
{8, 18, 19, 25, 26, 29},
{5, 7, 10, 26, 29, 32},
{2, 4, 7, 19, 25, 27},
{2, 10, 14, 22, 23, 34},
{1, 8, 16, 31, 40, 43},求9出现的次数小弟刚开始接触JAVA 已经卡在这快一天了 对如何计算几乎没有思路
请诸位指点一下 多谢PS: 抽奖使用球的数目(例子中为45)、中奖号码的长度(例子中为6)、需求出现次数的数字(例子中为9)均为变量

解决方案 »

  1.   

    提供一个思路吧:抽奖使用球的数目(例子中为45)、中奖号码的长度(例子中为6)、需求出现次数的数字(例子中为9)均为变量,三个变量分别用totalNumber、length、number表示。number出现的次数用变量count表示,初始值为0。假如一组数字用一个Set来表示(因为不可能有重复的),如{9, 16, 22, 33, 34, 37}。
    多组数字用一个List来表示,其中List的每个元素是上面的一个Set,假设List的长度为n。
    这样,需要判断作为参数传递进来的number在List中的每个Set中是否出现,若出现,则count++。
    遍历List,就可以计算出number出现的次数,即count的值。
      

  2.   

    多谢楼上 但是SET 和LIST我还没有学到听老师的口气好象是要用到ARRAY2元数列之类的东西..我还是等老师给我讲好了...
      

  3.   

    用数组的话也可以,只不过性能差一些,你要一个一个的匹配。
    数据用二维数组来表示,然后在两层循环里(行是一层,列是一层)判断数组元素与number是否相等,若相等,count++。
    其实道理是一样的。