html5中文学习网

您的位置: 首页 > 网络编程 > java教程 » 正文

java微信红包实现算法_java_

[ ] 已经帮助:人解决问题

随着目前微信越来越火,所以研究微信的人也就越来越多,这不前一段时间,我们公司就让我做一个微信公众号中问卷调查发红包功能,经过一段时间的研究,把功能完成,里面主要的实现步骤都是按照微信公众号开发文档来的,很详细,在整个过程唯有红包算法需要仔细编写,因为毕竟涉及到钱,所以得小心,而且不仅微信中需要发红包,我们在做APP时可能也会遇到需要发红包的功能,所以这里列出红包的核心算法,供大家一起学习研究。UtzHTML5中文学习网 - HTML5先行者学习网

public static List getRed(int number,float total,double min){  //红包数   //int number = 300;   //红包总额  // float total = 500;   float money;   //最小红包   //double min = 0.48;   double max;   int i = 1;   List math = new ArrayList();   DecimalFormat df = new DecimalFormat("###.##");   while (i < number) {   //保证即使一个红包是最大的了,后面剩下的红包,每个红包也不会小于最小值   max = total - min * (number - i);   int k = (int)(number - i) / 2;   //保证最后两个人拿的红包不超出剩余红包   if (number - i <= 2) {    k = number - i;    }   //最大的红包限定的平均线上下   max = max / k;   //保证每个红包大于最小值,又不会大于最大值   money = (int) (min * 100 + Math.random() * (max * 100 - min * 100 + 1));   money = (float)money / 100;   //保留两位小数   money = Float.parseFloat(df.format(money));   total=(int)(total*100 - money*100);   total = total/100;   math.add(money);   System.out.println("第" + i + "个人拿到" + money + "剩下" + total);   i++;   //最后一个人拿走剩下的红包   if (i == number) {    math.add(total);    System.out.println("第" + i + "个人拿到" + total + "剩下0");    }   }  //取数组中最大的一个值的索引   System.out.println("本轮发红包中第" + (math.indexOf(Collections.max(math)) + 1) + "个人手气最佳"); return math;   }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。UtzHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助