1 package Hongbao;
2
3 import java.text.DecimalFormat;
4 import java.util.Scanner;
5
6 public class Hongbao {
7 public static void main(String[] args) {
8 Scanner sc=new Scanner(System.in);
9
10 System.out.println("请输入红包金额:");
11 double money=sc.nextDouble();
12
13 System.out.println("请输入红包个数:");
14 int count=sc.nextInt();
15
16 //有序数组1到99
17 int[] num=new int[100];
18 for (int i = 1; i < 100; i++) {
19 num[i-1]=i;
20 }
21
22 //有序数组打乱
23 for (int i = 0; i < num.length; i++) {
24 int ran=(int)(Math.random()*100);
25 int temp=num[i];
26 num[i]=num[ran];
27 num[ran]=temp;
28 }
29
30 //将分配的红包个数赋给新数组
31 int[] acount=new int[count];
32 for (int i = 0; i < count; i++) {
33 acount[i]=num[i];
34 }
35 //冒泡排序
36 for (int i = 0; i < acount.length; i++) {
37 for (int j = 0; j < acount.length-1-i; j++) {
38 if(acount[j]>acount[j+1]){
39 int temp=acount[j];
40 acount[j]=acount[j+1];
41 acount[j+1]=temp;
42 }
43 }
44 }
45
46 //红包分钱算法
47 int[] mon=new int[count];
48 for (int i = 0; i < count; i++) {
49 if(i==0){
50 mon[0]=acount[0];
51 }else if(i>0&&i<count-1){
52 mon[i]=acount[i]-acount[i-1];
53 }else{
54 mon[i]=100-acount[i-1];
55 }
56 }
57
58 //带钱
59 DecimalFormat df=new DecimalFormat("####0.00");//保留两位小数
60 for (int i = 0; i < mon.length; i++) {
61 System.out.println("第"+(i+1)+"名,领取"+df.format(mon[i]*0.01*money)+"元红包");
62 }
63
64 }
65 }