写了一个微信发红包的代码

news/2024/12/5 11:42:11/
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;public class WeChatClub {public static void main(String[] args) {int sendMoney = 10000; // 100元int size = 6; // 红包个数Person zhangsan = new Person("1", "张三");Person lisi = new Person("2", "李四");Person wangwu = new Person("3", "王五");Person zhao6 = new Person("4", "赵六");Person mrLi = new Person("5", "李总");Person missX = new Person("6", "小波");Person missLxb = new Person("7", "李晓波");Person missF = new Person("8", "冯程程");List<Integer> redPackets = zhangsan.sendMoney(sendMoney, size);lisi.receiveMoney(redPackets);wangwu.receiveMoney(redPackets);zhao6.receiveMoney(redPackets);mrLi.receiveMoney(redPackets);missX.receiveMoney(redPackets);missLxb.receiveMoney(redPackets);missF.receiveMoney(redPackets);}}class Person implements Serializable {// 唯一标识private String id;// 昵称private String nickName;// 抢到的红包金额单位: 分private int money;public Person() {}public Person(String id, String nickName) {this.id = id;this.nickName = nickName;}// getter, setterpublic String getId() {return id;}public String getNickName() {return nickName;}public int getMoney() {return money;}/*** 发红包** @param amount 红包金额, 单位为分* @param size   红包份数* @return*/public List<Integer> sendMoney(int amount, int size) {System.out.println(nickName + "发了 " + size + " 个红包金额: " + amount);List<Integer> redPackets = new ArrayList<>();BigDecimal bdAmount = new BigDecimal(amount);for (int i = 0; i < size; i++) {if (i == size - 1) {redPackets.add(bdAmount.intValue());} else {BigDecimal percent = new BigDecimal(new Random().nextInt(100)).divide(new BigDecimal(100));BigDecimal redPacket = bdAmount.multiply(percent).setScale(0, BigDecimal.ROUND_HALF_UP);redPackets.add(redPacket.intValue());bdAmount = bdAmount.subtract(redPacket);}}return redPackets;}/*** 抢红包** @param redPackets* @return*/public synchronized void receiveMoney(List<Integer> redPackets) {if (redPackets == null || redPackets.isEmpty()) {System.out.println(nickName + " 没抢到红包, 红包被抢完了");return;}int anInt = new Random().nextInt(redPackets.size());this.money = redPackets.remove(anInt);System.out.println(nickName + "抢到了红包, 金额: " + money);}
}


http://www.ppmy.cn/news/465440.html

相关文章

python实现微信发红包

微信发红包规则 第一种&#xff0c;单独给某个好友发红包&#xff1a;0 < 金额 < 200&#xff0c;金额支持两位小数 第二种&#xff0c;群红包&#xff0c;有以下三种类型&#xff1a; 1&#xff09; 拼手气红包&#xff1a;1 < 红包个数 < 当前群聊人数&#xff0…

Python 实现发红包

问题描述 使用 python 实现类似微信发红包的功能&#xff0c;尽量保持每个人收获的红包平均&#xff0c;要求输入总金额 money&#xff08;元-float&#xff09;及红包个数 num&#xff08;个-int&#xff09;&#xff0c;且每人最小获得的红包额度不能小于0.01元&#xff08;…

利用Python制作一个发红包的小游戏

本系统的内容是综合应用python程序设计的知识&#xff0c;实际并实现了一款简单发红包的小游戏&#xff0c;具体功能如下&#xff1a; &#xff08;1&#xff09;拼手气红包&#xff1a;随机金额 &#xff08;2&#xff09;普通红包&#xff1a;能够通过输入的红包人数与红包…

微信公众号怎么发红包?

#微信公众号怎么发红包# 利用微信公众号给粉丝派发红包是日常运营中不可或缺的一种营销方式&#xff0c;活动中植入了微信红包元素&#xff0c;可以大大吸引用户的关注&#xff0c;不管是给公众号引流还是提升粉丝活跃度都是非常有效的&#xff0c;但是还有不少公众号运营者不…

python模拟简单发红包

import random def redEnv(k,rest):mround(round(random.random()/100.01,2)*rest,2)return m totalfloat(input(请输入红包金额&#xff1a;)) numint(input(请输入红包个数:)) remaintotal for i in range(num-1):moneyredEnv(i,remain)remain-moneyprint(红包{0:d}:{1:.2f}.…

python 发红包import random用redenv_python 发红包

红包1 import random def redpacket(cash,person): lst[] sum10 cash cash * 100 while cash>0 and person >1: money random.randint(1,cash) person-1 cash-money lst.append(money/100) sum1 money/100 else: lst.append(cash/100) sum1 cash/100 random.… import…

Python发红包

文章目录 1. 题目&#x1f50d;1.1 输入样例1.2 输出样例 2. 题解✨2.1 代码 1. 题目&#x1f50d; 使用random()模拟10次发红包的情况。 1.1 输入样例 请输入红包总金额&#xff1a;100 请输入红包总数量&#xff1a;8​ 1.2 输出样例 [11, 34, 16, 14, 2, 16, 2, 5] [65…

ipad上能免费下载Python并运行吗?

前言 一般也是可以&#xff0c;直接 在 Ipad App store 里搜索 python 即可&#xff0c;如下: 不过小编并不觉得 ipad 适合 写 python&#xff0c;建议最好还是在电脑上如 mac 进行编程。 读者福利&#xff1a;知道你对Python感兴趣&#xff0c;便准备了这套python学习资料 …