您的位置:首页 > 编程语言 > Java开发

java数组实现红包的方法

2016-09-13 16:59 489 查看
package Hongbao;

import java.text.DecimalFormat;
import java.util.Scanner;

public class Hongbao {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);

System.out.println("请输入红包金额:");
double money=sc.nextDouble();

System.out.println("请输入红包个数:");
int count=sc.nextInt();

//有序数组1到99
int[] num=new int[100];
for (int i = 1; i < 100; i++) {
num[i-1]=i;
}

//有序数组打乱
for (int i = 0; i < num.length; i++) {
int ran=(int)(Math.random()*100);
int temp=num[i];
num[i]=num[ran];
num[ran]=temp;
}

//将分配的红包个数赋给新数组
int[] acount=new int[count];
for (int i = 0; i < count; i++) {
acount[i]=num[i];
}
//冒泡排序
for (int i = 0; i < acount.length; i++) {
for (int j = 0; j < acount.length-1-i; j++) {
if(acount[j]>acount[j+1]){
int temp=acount[j];
acount[j]=acount[j+1];
acount[j+1]=temp;
}
}
}

//红包分钱算法
int[] mon=new int[count];
for (int i = 0; i < count; i++) {
if(i==0){
mon[0]=acount[0];
}else if(i>0&&i<count-1){
mon[i]=acount[i]-acount[i-1];
}else{
mon[i]=100-acount[i-1];
}
}

//带钱
DecimalFormat df=new DecimalFormat("####0.00");//保留两位小数
for (int i = 0; i < mon.length; i++) {
System.out.println("第"+(i+1)+"名,领取"+df.format(mon[i]*0.01*money)+"元红包");
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: