在各节中除整数[Java]

时间:2019-11-15 11:36:45

标签: java arraylist sections

我想将我从用户那里获得的输入划分为java中不同的num部分。然后作为输出,每个部分必须有多少个数字。 例如。 1 1 2 3 4 4 5 6 7 8 9 10 11 12

  • 在(0-3)部分中,有4个数字
  • 在(4-6)节中,有4个数字
  • 在(7-9)节中,有3个数字
  • 在(10-12)节中,有3个数字

我不知道该如何管理。

3 个答案:

答案 0 :(得分:1)

想法是将每个列表element放入相应的存储桶

存储桶的IDelement-1/3计算得出,其中/division,其中remainder

这样的除法产生quotientremainder,并且ID的存储桶等于quotient

除了0以外,它都可以工作,因此如果有条件,可以将其放入第一个存储桶

答案 1 :(得分:0)

所以。。我有一个主意。在此特定示例中,您具有针对组的步骤3。也许让我们将数字与3进行四舍五入,然后将结果用作组号。例如:Math.ceil(1/3.0) == 1,所以这是第一组(0-3),对于Math.ceil(5/3.0) == 2,这是第二组,依此类推。但是请注意Math.ceil(0/3.0) == 0

有关四舍五入的参考:Java Round up Any Number

P.S .:请不要怪我,我对stackoverflow的第一个回答。

答案 2 :(得分:0)

您可以通过多种方式进行操作。最简单的方法之一如下:

public class Main {
    public static void main(String[] args) {
        int[] arr = { 1, 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
        int[] rangeCount = new int[4];
        for (int i : arr) {
            switch (i) {
            case 0:
            case 1:
            case 2:
            case 3:
                rangeCount[0]++;
                break;
            case 4:
            case 5:
            case 6:
                rangeCount[1]++;
                break;
            case 7:
            case 8:
            case 9:
                rangeCount[2]++;
                break;
            case 10:
            case 11:
            case 12:
                rangeCount[3]++;
                break;
            default:
                break;
            }           
        }
        int x=0;
        for(int i=0;i<rangeCount.length;i++) {
            System.out.println("In section ("+x+" - "+(x+=x==0?3:2)+") there are "+rangeCount[i]+" numbers");
            x++;
        }
    }
}

输出:

In section (0 - 3) there are 4 numbers
In section (4 - 6) there are 4 numbers
In section (7 - 9) there are 3 numbers
In section (10 - 12) there are 3 numbers