d0e1f 发表于 2015-07-10 13:22

京东众筹抽奖算法(转载娱乐)

无聊看到京东众筹的抽奖算法,就简单的实现了下,依据第三版抽奖规则编写的:http://zbbs.jd.com/thread-399-1-1.html
JDRoll.png


JDRoll.javaimport java.util.Scanner;

public class JDRoll {

    public static void main(String[] args) {
      System.out.println("单行输入,用空格隔开!");
      System.out.println("双色球最大、最小、蓝色、参与人数、获奖名额:");
      Scanner scan = new Scanner(System.in);
      //双色球最大最小及蓝色球A
      String aStr = scan.next() + scan.next() + scan.next();
      int a = Integer.valueOf(aStr);
      System.out.println("A: " + a);
      //人数N
      String nStr = scan.next();
      int n = Integer.valueOf(nStr);
      System.out.println("N: " + n);
      //名额P
      String pStr = scan.next();
      int p = Integer.valueOf(pStr);
      System.out.println("P: " + p);
      //人数N除以名额P,取商B
      int b = n/p;
      System.out.println("N / P = B: " + b);

      //A除以B,余数为首个中奖号X
      int x = a%b;
      System.out.println("A % B = X: " + x);

      int[] rs = new int;
      rs = x;

      //其他中奖号X+B,X+2B,X+3B,......,X+(P-1)B
      int i = 1;
      while(i < p) {
            rs = x + i*b;
            ++i;
      }

      for (int j = 0; j < p; ++j) {
            System.out.println("第" + (j+1) + "个中奖号码为:" + rs);
      }
    }

}
页: [1]
查看完整版本: 京东众筹抽奖算法(转载娱乐)