java 统计数字所属区间

Python021

java 统计数字所属区间,第1张

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])

}

}

随便写的,你尝试下吧

首先我认为你需要一个区间之间的合并操作,假设你有一个区间类,成员变量有上限和下限,为这个区间类增加一个合并函数,比如(1,5)和(2,4)就合并为(1,5),如果是(1,5)和(2,6)就合并为(1,6)。

当然这里涉及一个不能合并的区间,也就说,这个合并函数具有返回值boolean,返回值表示能否成功合并,不能要返回false。

然后,算法的输入肯定是一个区间数组,数组里是所有的区间。在算法中维护一个新数组,这个数组把能合并的区间都合并在一起,新数组中要保证任意两个区间都是不能合并的,也就是说,遍历输入的数组的每一个区间,在新数组中寻找一个可以合并的区间,如果找不到,则在新数组中单独占一个位置,在每进行一次成功的合并之后,都要搜索新数组,保证新数组的不可合并性。

最后,当搜索输入数组完毕,新数组也建立成功后,再分别计算每个新数组中区间的间断值再求和就是结果了。

用if判断啊

int num = .....

if(num>100 &&num<200)

{

//num 值 介于100~200

}

else if(num >201 &&num <300)

{

//num值 介于201~300

}

else if(...)以此类推