java数组实现红包的方法
2024-08-23 01:39:52
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)+"元红包");
} }
}
最新文章
- hdu-5988 Coding Contest(费用流)
- 冰冻三尺非一日之寒--rabbitMQ,redis
- 解决mysql数据库插入中文字段时出现??? 的问题
- java 静态代理-积木系列
- 格式化namenode,造成无法启动datanode
- Visual Studio 2012系统环境变量设置(命令行)
- 谈敏捷,谈开发 --《Agile Software Development》读后感
- yii2 ArrayHelper map 使用
- [转Go-简洁的并发 ]
- HDU5873:Football Games
- IE的CSS滤镜不过只支持IE可以创建幻灯片等一些炫酷的效果
- Nexys3学习手记1:写在前面的话
- Android加速度传感器
- mysql-列属性
- JS进阶之---执行上下文,变量对象,变量提升
- Swagger介绍-一套流行的API框架
- HDU 1863 畅通工程 最下生成树问题
- cookie保存用户名及密码
- [C++] 用Xcode来写C++程序[1] 新建C++项目工程
- 公众号 - 解决所有测试中的CORS问题