Java常用算法之整数均分

package com.jiuqi.dna.gams.GXH.ahlgdx.servlet;

import java.text.DecimalFormat;

public class TestAverageANum {
	
	public static void main(String[] args) {
		averageANum(13, 3);
	}
	
	public static void averageANum(double num, int groupCount){
		
		DecimalFormat df = new DecimalFormat("#.0");
		String average_str = df.format(num/groupCount);
		String average_str_oneDecimal = average_str.substring(0, average_str.indexOf('.') + 2);
		int[] two_parts = splitADoubleNumByDot(Double.valueOf(average_str_oneDecimal));
		int inteter_part = two_parts[0];
		int decimal_part = two_parts[1];
		if(decimal_part > 5){
			inteter_part++;
		}
		
		int[] arr = new int[groupCount];
		for(int i = 0; i < groupCount - 1; i++){
			arr[i] = inteter_part;
		}
		arr[groupCount - 1] = (int) (num - inteter_part*(groupCount - 1));
		
		for(int i = 0; i < arr.length; i++){
			System.out.println(arr[i]);
		}
		
	}
	
	public static int[] splitADoubleNumByDot(double num){
		String str = Double.toString(num);
		String[] two_parts = str.split("\\.");
		int part1 = Integer.valueOf(two_parts[0]);
		int part2 = Integer.valueOf(two_parts[1]);
		return new int[]{part1, part2};
	}

}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值