以前在csdn上看到过的,温习 一下
从(A-K)13张扑克中任意取出5张,判断这5张是否联号,写出你觉得最有效率的代码。
大家发挥吧.....

解决方案 »

  1.   

    背包问题怎么解决的?A 2 3 4 5这样算不算顺子? public static void main(String[] args) {
    int min=0;
    int sum=0;
    for(int i=0;i<5;i++){
      int number = (int)(Math.random()*13+1);
      if(number ==1)
        System.out.print("A" +" ");
      else if(number ==11)
        System.out.print("J" +" ");
      else if(number ==12)
    System.out.print("Q" +" ");
      else if(number ==13)
    System.out.print("K" +" ");
      else
        System.out.print(number +" ");
      if(min > number) min = number;
      sum += number;
    }
    if(sum == 5*min+10) 
      System.out.println("yes");
    else
      System.out.println("no");
    }
    }
      

  2.   

    package com.suypower.chengyu.test;import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.LinkedHashSet;
    import java.util.TreeSet;public class Test{
    public static void main(String[] args)
    {
    String[] str = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
    // 取 任意 数组 中的 5 个 元素 确保不重复 且 排序
    HashSet hs = new HashSet();
    TreeSet ts = new TreeSet();
    for(int i=0;i<str.length;i++)
    {
    int number = (int)(Math.random()*13);
    hs.add(str[number]);
    if(hs.size() == 5) break;
    }
    // 对 A J Q K 转换 并打印
    Iterator i = hs.iterator();
    System.out.println("抽取的5个随即元素是:");
    while(i.hasNext())
    {
    String string = i.next().toString();
    if(string.equals("A"))
    {
    string = "1";
    }else if(string.equals("J"))
    {
    string = "11";
    }else if(string.equals("Q"))
    {
    string = "12";
    }else if(string.equals("K"))
    {
    string = "13";
    }
    System.out.print(string +" ");
    int num = Integer.parseInt(string);
    ts.add(num);
    }
    int[] array = new int[5];
    // 对元素排序 且排序
    System.out.println();
    Iterator iterator = ts.iterator();
    int nu = 0;
    while(iterator.hasNext())
    {
    array[nu]=Integer.parseInt(iterator.next().toString());
    System.out.print(array[nu]+" ");
    ++nu;
    }
    System.out.println();
    System.out.println("***************************************");
    boolean boo = true;
    for(int j=0;j<array.length;j++)
    {
    for(int k=1;k<array.length;k++)
    {
    if(array[k]-array[j] != 1)
    {
    boo = false;
    }
    }
    }
    if(boo)System.out.println("联号!联号!联号!这样小的机会都被你抽取啊,请客吧!");
    else System.out.println("不是联号!");
    }
    }