微信红包的模拟代码

简介: 微信红包的模拟代码

平时发消息不看,一个红包,千军万马来相见。红包的魅力这么大,身为一名java开发人员,怎么能不知道微信红包的源代码大概长什么样呢?

       逻辑一  微信的红包功能,用户需填写红包总金额红包个数

       逻辑二  计算机随机分配每个红包的金额,要求红包发放金额保留到小数点后两位

      逻辑三  每个红包至少有有0.01。

       逻辑四  计算机分配的金额必须在剩余金额和0.01元之间。

逻辑实现

      第一步   通过Scanner方法使用户可输入红包总金额红包总个数

       第二步   通过Random方法使计算机随机生成每个红包的金额,通过格式化方法保留小数点后两位。

       第三步  通过if条件语句,

                     红包总金额<0.01*红包总个数,通过println打印"错误404";

                     红包总金额=>0.01*红包总个数,运行微信红包的代码(for循环语句)。

      第四步   通过for循环实现每个红包的发放,红包已发放的个数设为i

                     构建数学公式

                     每个红包最大分配额=红包总金额-0.01元*(红包总个数-i)

                     红包随机分配金额=每个红包最大分配额-0.01元

                     通过Random方法,生成随机分配金额(0<=随机分配金额<=红包随机分配金额)

                     每个红包金额=随机分配金额+0.01元

                     红包总金额=红包总金额-每个红包金额

                     通过println打印出每个红包金额

实操展示

import java.util.Scanner;
import java.util.Random;
public class RedBagtestf {
  public static void main(String[] args) {
    System.out.println("------微信红包程序------");
    Scanner sc=new Scanner(System.in);
    System.out.println("请输入红包的金额:");
    double bagMoney=sc.nextDouble();
    System.out.println("请输入红包的个数:");
    int bagCount=sc.nextInt();
    sc.close();
    double bagMin= 0.01;
    Random ran=new Random();
    if(bagMoney<bagMin*bagCount){
      System.out.println("错误:您的红包金额不足以支撑红包个数的发放!");
    }else {
      for(int i=1;i<bagCount;i++) {
        double bagMax=bagMoney-bagMin*(bagCount-i);    //公式逻辑正确是消除Bug的关键
        double bound=bagMax-bagMin;
        double moneytest=(double)ran.nextInt((int)(bound*100))/100;
        double money=moneytest+bagMin;
        bagMoney=bagMoney-money;
        System.out.println("第"+i+"个红包:"+String.format("%.2f",money)+"元");
      } 
        System.out.println("第"+bagCount+"个红包:"+String.format("%.2f",bagMoney)+"元");
    }
  } 
}

输出结果

第一种情况,当红包金额不足时

第二种情况,当红包金额充足时

相关文章
|
3月前
|
定位技术 开发工具 Python
代码让微信开屏地球转起来
这段内容介绍了如何使用Python制作一个动态旋转的地球图像,类似于微信启动画面中的地球。文章详细描述了所需准备的三个素材(地球表面、云图和微信地球的抠图),并解释了通过调整云层和地面的旋转速度来实现自然的相对运动效果的基本原理。文中还提供了一个GIF压缩工具的链接,以及部分代码示例。此外,文章最后提到了一些Python学习资源,包括学习路线、开发工具、视频教程、实战案例、练习题和面试资料。
51 0
适用于alist的微信遮罩代码
最近在研究alist网盘工具,终于找到了适用于alist的微信遮罩代码。代码如下:``` ```。下面是示例图片,可根据需要自行替换。![点击查看示例图片](https://ucc.alicdn.com/pic/developer-ecology/ms7h4bs4k7hme_1a36659fd3054e508107f6c764c6f0d3.jpg)
|
7月前
|
JavaScript Java 测试技术
基于小程序的教学辅助微信小程序+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的教学辅助微信小程序+springboot+vue.js附带文章和源代码说明文档ppt
58 1
|
3月前
|
小程序 JavaScript Go
代码总有一个是你想要的分享63个微信小程序源
分享63个微信小程序源代码,包括电商系统、同城拼车、博客等多种应用,涵盖C#、Node.js、Golang等技术栈。每个项目附带源码和示例,适合初学者和开发者参考学习。提取码:8888,代码效果参考:http://www.603393.com/sitemap.xml。
93 2
|
4月前
|
小程序 前端开发 JavaScript
微信小程序实现微信支付(代码和注释很详细)
微信小程序实现微信支付(代码和注释很详细)
|
4月前
|
小程序 JavaScript 前端开发
微信小程序开发必备前置知识:基本代码构成与语法
【8月更文挑战第8天】微信小程序的基本代码构成与语法
123 0
微信小程序开发必备前置知识:基本代码构成与语法
|
4月前
|
小程序 JavaScript 安全
微信小程序实现云闪付支付(代码和注释很详细)
微信小程序实现云闪付支付(代码和注释很详细)
|
4月前
|
JavaScript 安全
|
7月前
|
JavaScript Java 测试技术
基于小程序的健身管理系统及会员微信小程序+springboot+vue.js附带文章和源代码说明文档ppt
基于小程序的健身管理系统及会员微信小程序+springboot+vue.js附带文章和源代码说明文档ppt
57 2
|
7月前
|
JavaScript Java 测试技术
基于微信小程序的医院体检管理系统附带文章和源代码
基于微信小程序的医院体检管理系统附带文章和源代码
117 1