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)+"元红包"); } } }
相关文章推荐
- java学习之旅56--数组_StringBuilder和StringBuffer的使用_常用方法_方法链的实现_JDK源码分析
- java方法实现数组返回
- java实现给出分数数组得到对应名次数组的方法
- 数组翻转的方法(java实现)
- 数组全排列---递归方法实现(java)
- HashTable的数组和连接两种实现方法(Java版本号)
- JAVA里实现一个数组全排列的方法
- Java实现数组反转翻转的方法
- Java数组实现循环队列的两种方法
- 数据存储——Java数组,去掉重复值、增加、删除数组元素的实现方法
- @V@ java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。
- HashTable的数组和连接两种实现方法(Java版本)
- Java数组实现循环队列的两种方法
- Java实现数组反转翻转的方法
- java实现螺旋数组-另类方法
- java 数组实现迭代方法 iterator,模仿Arraylist
- * java 中的数组 对象数组 以及main方法中的参数 x y不用中间参数实现交换
- java实现列表、集合与数组之间转化的方法
- java数据结构与算法之双向循环队列的数组实现方法
- Java数组,去掉重复值、增加、删除数组元素的实现方法