java 统计数字所属区间

用java编写一个统计方法,在给出的一维数组中统计连续区间的数值个数,比如
int array = [1,2,101,220,1100,2300,1,10,230,220,2,1100........]有重复,且数值大小未知。
判断在[0,100]区间有多少个,[101,200],[201,300]......区间末端由数组里的数值大小决定。

int array[] = {1,2,101,220,1100,2300,1,10,230,220,2,1100};
int arr2[]=null; //用数组存储array数组元素在各个区间个数
int max=0;//初始化最大值;

//循环把数组最大值找出来
for (int i = 0; i < array.length; i++) {
if(array[i]>max){
max=array[i];
}
}
System.out.println("max:"+max);
//计算区间个数,如何最大值不能整除100 要增加一个区间
if(max%100!=0){
arr2=new int[(max/100+1)];
}else{
arr2=new int[(max/100)];
}

//循环array数组元素
for (int i = 0; i < array.length; i++) {
//循环arr2数组
for (int j = 0; j < arr2.length; j++) {
//判断array数组元素 在那个区间段
if(array[i]>=j*100+1 && array[i]<=(j+1)*100 ){
arr2[j]++;
}
}
}

for (int i = 0; i < arr2.length; i++) {
if(i==max/100){
System.out.println("["+((i*100)+1)+"-"+(max)+"]:"+arr2[i]);
}else{
System.out.println("["+((i*100)+1)+"-"+((i+1)*100)+"]:"+arr2[i]);
}
}

随便写的,你尝试下吧

温馨提示:答案为网友推荐,仅供参考
相似回答