600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 模拟微信拼手气红包程序

模拟微信拼手气红包程序

时间:2021-04-04 23:16:26

相关推荐

模拟微信拼手气红包程序

模拟微信拼手气红包程序

有用户输入总金额与红包数,随机给每个红包分配金额

package p03.t010;import java.util.Random;import java.util.Scanner;/*** 功能:* 作者:李枝蔓* 日期:06月08日*/public class HongBao {public static void main(String[] args) {Scanner sc=new Scanner(System.in);double money;//红包总金额int num;//红包总个数//输入红包总金额System.out.print("请输入红包总金额:");while(true){money=sc.nextDouble();if(money<=0){System.out.print("输入金额不合法哦~请重新输入:");}elsebreak;}//输入红包的个数System.out.print("请输入红包的个数:");while(true){num=sc.nextInt();if(num<=0){System.out.print("输入个数不合法哦~请重新输入:");}else if(money/num<0.01){System.out.print("输入的个数太多,不够分呢~请重新输入:");}elsebreak;}Random r=new Random();if(money/num==0.01){//刚好一人一分钱for(int i=1;i<=num;i++){System.out.println("第"+i+"个红包为:"+0.01+"元。");}}else{//钱不是均分的情况double mymoney;//定义每个人抢到的钱数double maxmoney;//定义单个红包最大值,方便指定后续产生随机数的上限double randomMoney;//定义产生的随机钱数,不是每个人抢到的钱数,但是有关联for(int i=1;i<num;i++){//输出前num-1个红包的钱数maxmoney=money-(num-i)*0.01;//此时最大红包=剩余总钱数-剩下红包个数*分配最小金额randomMoney=(double) r.nextInt((int)((maxmoney-0.01)*100))/100;//随机取整数,因为随机数可能取到0,所以将上限值减去0.01。// 上限值为double类型的,所以*100变成多少分钱,再强转为整型。//再除以100,强转为double类型,就是产生的随机钱数。mymoney=randomMoney+0.01;//取到的随机钱数加上0.01即为真正抢到的红包钱数money=money-mymoney;//剩余的钱数=当前的钱数-当前被抢到的红包钱数System.out.println("第"+i+"个红包为:"+String.format("%.2f",mymoney)+"元。");}System.out.println("第"+num+"个红包为:"+String.format("%.2f",money)+"元。");//最后一个红包就是剩余的钱数,直接输出}System.out.println("您的红包已领完!");}}

运行结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。