我正在计算建造一个简单的乐高屋需要多少乐高积木。
我有以下砖:1x2,2x2,2x4。
我需要计算出我需要以给定的宽度,长度和高度建造乐高屋的砖块数量。
在乐高板上看到的宽度和长度以点为单位。 高度以乐高积木的高度给出。
例如:2x4乐高积木是((2 * 4)* 2)。 像这样:例如:如果我想建造一座房子: 8点宽| 7点长| 1块高
输出应该告诉我需要:
到目前为止,我的代码显示了我可以用来建造房屋的每块砖的数量,但是我无法弄清楚如何让它只显示所需的绝对必要砖块。
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);
答案 0 :(得分:1)
这应该相当容易。从第一面开始,除以最大块的长度,向下舍入。这是您需要的这些块的数量。然后你做[length] modulo [length of longest block]
来获得你需要的剩余点。现在,您将使用下一个块大小重复该过程,直到您使用所有块执行该过程。
现在你采取第二面,减去四个点,然后执行相同的算法。
当然,您需要分别处理宽度和/或高度低于4的房屋的特殊情况。