免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1702 | 回复: 0

京东众筹抽奖算法(转载娱乐) [复制链接]

论坛徽章:
0
发表于 2015-07-10 13:22 |显示全部楼层
无聊看到京东众筹的抽奖算法,就简单的实现了下,依据第三版抽奖规则编写的:http://zbbs.jd.com/thread-399-1-1.html
JDRoll.png
1.png

JDRoll.java
  1. import java.util.Scanner;

  2. public class JDRoll {

  3.     public static void main(String[] args) {
  4.         System.out.println("单行输入,用空格隔开!");
  5.         System.out.println("双色球最大、最小、蓝色、参与人数、获奖名额:");
  6.         Scanner scan = new Scanner(System.in);
  7.         //双色球最大最小及蓝色球A
  8.         String aStr = scan.next() + scan.next() + scan.next();
  9.         int a = Integer.valueOf(aStr);
  10.         System.out.println("A: " + a);
  11.         //人数N
  12.         String nStr = scan.next();
  13.         int n = Integer.valueOf(nStr);
  14.         System.out.println("N: " + n);
  15.         //名额P
  16.         String pStr = scan.next();
  17.         int p = Integer.valueOf(pStr);
  18.         System.out.println("P: " + p);
  19.         //人数N除以名额P,取商B
  20.         int b = n/p;
  21.         System.out.println("N / P = B: " + b);

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

  25.         int[] rs = new int[p];
  26.         rs[0] = x;

  27.         //其他中奖号X+B,X+2B,X+3B,......,X+(P-1)B
  28.         int i = 1;
  29.         while(i < p) {
  30.             rs[i] = x + i*b;
  31.             ++i;
  32.         }

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

  37. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP