微信红包的模拟代码

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

平时发消息不看,一个红包,千军万马来相见。红包的魅力这么大,身为一名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月前
|
存储 小程序 UED
微信小程序代码包限制2M 怎么解决?
微信小程序代码包限制2M 怎么解决?
|
3月前
|
Web App开发 监控 JavaScript
1号防红网:什么是微信防红不死短链接?微信防红不死短链接代码示例
1号防红网:什么是微信防红不死短链接?微信防红不死短链接代码示例
56 0
|
8月前
|
小程序 前端开发 JavaScript
Java基于微信小程序的校园通知系统,附前后端代码,教程(三)
Java基于微信小程序的校园通知系统,附前后端代码,教程(三)
|
10天前
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
16 0
|
2月前
|
小程序
微信小程序下载代码
微信小程序下载代码
|
3月前
|
JavaScript 小程序
微信小程序的双向数据绑定和vue的哪里不一样?下拉刷新的方式代码示例
微信小程序的双向数据绑定和vue的哪里不一样?下拉刷新的方式代码示例
|
4月前
|
小程序 API
微信小程序飞机大战游戏步骤及代码
微信小程序飞机大战游戏步骤及代码
78 0
|
4月前
|
存储 小程序 开发者
微信小程序猜拳游戏步骤及代码
微信小程序猜拳游戏步骤及代码
73 0
|
4月前
|
存储 小程序 开发者
开发微信小程序模拟聊天步骤及代码
开发微信小程序模拟聊天步骤及代码
79 0
|
4月前
|
小程序 开发者
微信小程序斗地主完整代码及步骤
微信小程序斗地主完整代码及步骤
209 0

热门文章

最新文章