我正在尝试计算建造一个简单的乐高房屋需要多少乐高积木。

我有以下积木:1x2、2x2、2x4。

我需要根据给定的宽度,长度和高度,计算建造积木房子所需的砖块数量。

如在乐高板上所见,宽度和长度以点为单位。
高度以乐高积木的高度给出。

例如:一块2x4的乐高积木是((2 * 4)* 2)。
像这样:java - 计算 build 房屋所需的乐高积木数量-LMLPHP

例如:如果我要盖房子,那就是:
    宽8点| 7点长|高1个街区

输出应该告诉我我需要:


总点数:56
1x2:2块砖
2x2:2块积木
2x4:4块砖


这样,如果我要使用给定的砖块建造乐高房屋,它看起来将像这样:java - 计算 build 房屋所需的乐高积木数量-LMLPHP

到目前为止,我的代码向我展示了我可以用来建造房屋的每种砖的数量,但是我无法弄清楚如何使其仅显示所需的绝对必要的砖。

public static void main(String[] args) {
    // TODO code application logic here

    Scanner sc = new Scanner(System.in);
    int length = 0;
    int width = 0;
    int height = 0;

    int oneXtwo = (1 * 2);
    int twoXtwo = (2 * 2);
    int twoXfour = (2 * 4);

    System.out.println(oneXtwo + "\t" + twoXtwo + "\t" + twoXfour + "\n");

    int totalDots;
    int oneXtwoTotal;
    int twoXtwoTotal;
    int twoXfourTotal;

    System.out.print("Length: ");
    length = sc.nextInt();
    System.out.print("Width: ");
    width = sc.nextInt();
    System.out.print("Height: ");
    height = sc.nextInt();

    totalDots = (length * width) * height;
    oneXtwoTotal = (((length * width) / oneXtwo) * (height));
    twoXtwoTotal = (((length * width) / twoXtwo) * (height));
    twoXfourTotal = (((length * width) / twoXfour) * (height));

    System.out.println("Total Dots: " + totalDots);
    System.out.println("Total 1x2: " + oneXtwoTotal);
    System.out.println("Total 2x2: " + twoXtwoTotal);
    System.out.println("Total 2x4: " + twoXfourTotal);

最佳答案

那应该很容易。您从第一侧开始,然后除以最大块的长度,向下舍入。这是您需要的这些块的数量。然后,使用do [length] modulo [length of longest block]获得所需的其余点。现在,以下一个块大小重复该过程,直到对所有块都进行了处理。

现在,您采用第二面,减去四个点,然后执行相同的算法。

当然,您需要分别处理宽度和/或高度小于4的房屋的特殊情况。

07-24 09:50