美团对于商家的评价体系是1-5星评价体系,用户在完成订单之后可以对商家打1/2/3/4/5星,而在客户端上,商家的评级却不一定是整数,而是会显示小数点后的一位。很显然这就需要一个计算器了,小美拥有了一些商户的评价数据,希望可以计算出商家在客户端上显示出的评分。
这个评分的计算非常简单,就是对该商家的所有客户的星级评价做求一个平均,然后去尾法显示小数点后的一位即可,例如平均得分是3.55,则显示的是3.5。例如某商家获得了1-5星评价各一个,则显示的评分是(1+2+3+4+5)/5=3.0。
如果商家没有获得评价,则显示0.0。
输入描述:
输入包含5个整数,依次分别表示商家获得1星到5星的评价数量,每一种评价的数量都不大于1000。
输出描述:
输出仅包含一个保留一位的小数,表示商家在客户端上显示的评级。
输入例子1:
2 2 1 1 2
输出例子1:
2.8
难点:Java如何保留一位小数,且不进行四舍五入
import java.math.BigDecimal;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int []array=new int[5];
for(int i=0;i<5;i++)
array[i]=scan.nextInt();
float sum=0;
int count=0;
for(int i=0;i<5;i++)
{sum+=array[i]*(i+1);
count+=array[i];
}
//System.out.println(sum/count);
double avg=sum/count;
BigDecimal bg=new BigDecimal(avg);//采用BigDecimal
BigDecimal new_avg=bg.setScale(1,bg.ROUND_DOWN);//设置1位小数
avg=new_avg.doubleValue();//保留一位小数 不四舍五入
//System.out.printf("%.1f",sum/count);//四舍五入
System.out.println(avg);
}
}