随机发红包

public class User {     private String name;     private  int money;// 当前用户拥有的钱数      public User() {     }    public User(String name, int money) {         this.name = name;         this.money = money;     }    public  void show(){         System.out.println("我叫"+name+", 我有多少钱"+money); }    public void setName(String name) {         this.name = name;     }    public void setMoney(int money) {         this.money = money;     }    public String getName() {         return name;     }    public int getMoney() {         return money;     } }
import java.util.ArrayList; import java.util.Random;public class Number extends User {    public Number() {     }    public Number(String name, int money) {         super(name, money);     }    public  void recive(ArrayList<Integer> list) {         // 从多个红包当中随机抽取一个给自己         int index = new Random().nextInt(list.size());         // 根据索引,从集合当中删除。并且得到被删除的红包给我自己         int delta= list.remove(index);         //当前成员自自己有多少钱         int money = super.getMoney();         //加法,并且重新设置回去         super.setMoney(money+delta);     } }

public class Maneger extends User {    public Maneger(){     }    public Maneger(String name, int money) {         super(name, money);     }    public ArrayList<Integer> send(int totalmoney, int count){         //首先需要一个集合,用来存储若干个红包的金额         ArrayList<Integer> redList=new ArrayList<>();         int leftmoney = super.getMoney(); // 群主当前余额         if (totalmoney > leftmoney){             System.out.println("金额不足");             return  redList;         }         // 扣钱,其实就是重新设置余额          super.setMoney(leftmoney-totalmoney);         // 发红包需要拆分成count份         int avg=totalmoney / count;         int mod =totalmoney % count;//也就是说余下的零头         // 剩下的零头,抱在最后一个红包当中         // 下面把红包放在集合当中         for (int i = 0; i < count-1; i++) {             redList.add(avg);         }          int last=avg+mod;         redList.add(last);         return redList;    } }
public class MainRedPacket {     public static void main(String[] args) {         Maneger maneger= new Maneger("群主",100);         Number one = new Number("成员A",0);         Number two = new Number("成员A",0);         Number three = new Number("成员A",0);         maneger.show();         one.show();         two.show();         three.show();         System.out.println("============");         //群主发20 分3个红包         ArrayList<Integer> redList =maneger.send(20,3);         // 三个成员去收红包         one.recive(redList);         two.recive(redList);         three.recive(redList);

maneger.show();        

one.show();         two.show();         three.show();

} }



原文地址:https://www.cnblogs.com/xinglingzhiren/p/10991989.html

时间: 2024-10-08 13:59:04

随机发红包的相关文章

PHP实现发红包程序

我们先来分析下规律. 设定总金额为10元,有N个人随机领取: N=1 第一个 则红包金额=X元: N=2 第二个 为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数. 第二个红包=10-第一个红包金额: N=3 第三个 红包1=0.01至9.99之间的某个随机数 红包2=0.01至(10-红包1-0.01)的某个随机数 红包3=10-红包1-红包2 -- 于是我们得到一个规律,在分配当前红包金额时,先预留剩余红白所需最少金额,然后在0.01至总金额-预留金额间取随机

php发红包

?/** * 发红包函数实现 * @param float $total    红包金额 * @param int $num        红包个数 * @return  返回数组 */function luckymoney($total,$num){    $min=0.01;//每个人最少能收到0.01元    $arr[]=array() ;    for ($i=0;$i<$num-1;$i++)    {        $safe_total=($total-($num-$i)*$mi

使用PHP编写发红包程序

使用PHP编写发红包程序 http://www.jb51.net/article/69815.htm 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-07-22 微信发红包是最近非常火的一件事情,大家或多或少的都发过或者收到过红包,那么下面来看一个我们在生活中常碰到的一个php实现微信红包的程序算法,希望这个程序对各位做微信开的朋友会带来帮助. 使用PHP发红包,当我们输入红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,每个红

51nod1625 夹克爷发红包(贪心+dfs)

题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1625 在公司年会上,做为互联网巨头51nod掌门人的夹克老爷当然不会放过任何发红包的机会. 现场有n排m列观众,夹克老爷会为每一名观众送出普通现金红包,每个红包内金额随机. 接下来,夹克老爷又送出最多k组高级红包,每组高级红包会同时给一排或一列的人派发 ,每个高级红包的金额皆为x. 派发高级红包时,普通红包将会强制收回.同时,每个人只能得到一个高级红包.(好小

微信发红包 PHP 实现

最近做生日营销,需要微信发红包,特此从网上找了一篇教程 首先你的有个服务号,并且开通了微信支付,我在这就不说怎么去申请和开通了,我是看了微信官方文档后,想看官方文档的朋友可以到下面这个链接 https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_1 class WxRedPack { //配置参数信息 const SHANGHUHAO = "***********";//商户号 const PART

发红包1.0

需求: 群主发普通红包.某群有多名成员,群主给成员发普通红包.普通红包的规则: 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取. 成员领取红包后,保存到成员余额中. 请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作. 定义用户类: package demo04; public class User { // 成员变量 private String username; // 用户名 private double leftMoney; // 余额 // 构

案例分析发红包

案例分析发红包 用户类 是一个父类,来构造方法 ++++++++++++++++++++++++++++++User.java public class User{ private String name;//姓名 private int money;//余额,也就是当前用户拥有的钱数 public User(){ } public User(String name, int money){ this.name = name; this.money = money; } //展示一下当前用户有多

Python之路09-随机验证码&amp;发红包

参考女神博客链接:https://www.cnblogs.com/Eva-J/articles/11266790.html?tdsourcetag=s_pcqq_aiomsg#_label6 随机验证码小白版本 # -*- coding: utf-8 -*- # 2019/8/5 13:56 import random # 小白版 yan='' for i in range(4): #current=random.randint(0,9) #生成0-9的随机数 current=random.ra

PHP+Ajax手机移动端发红包实例

基本流程:当输入完红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,且每个红包金额不等,并且所有红包金额总额等于总金额. 实现原理:设定总金额为10元,有N个人随机领取:N=1 第一个则红包金额=X元:N=2 第二个为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数第二个红包=10-第一个红包金额:N=3 第三个红包1=0.01至9.99之间的某个随机数红包2=0.01至(10-红包1-0.01)的某个随机数红包3=10-红