- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近刚开始编程并遇到了这个问题。
如何计算瓷砖地板需要多少 block 瓷砖?地砖是一个宽度为20的正方形,地板的长度和宽度由用户输入。
我可以使用%计算出我需要多少个完整的瓷砖,但是一旦我到达侧面的瓷砖碎片,我就陷入了困境。允许切割成更小的条,只是不能制作马赛克。
我尝试将尺寸存储在列表中,并将它们添加到尽可能接近 20 的位置。但是后来我遇到了一些问题,例如使用 2 个 8 block 的瓷砖和 2 个 12 block 的使用 2 个瓷砖,而 2 block 瓷砖就足够了。
我似乎找不到一种方法来编写该逻辑。
final int tile = 20;
double length = Input.readDouble();
double width = Input.readDouble();
int completeColumTiles = (int)width/tile;
int completeRowTiles = (int)length/tile;
int tilesWithoutRest = completeRowTiles * completeColumTiles;
double restLength = length%tile;
double restWidth = width%tile;
int tilesRest = calculateRest(completeColumTiles, completeRowTiles, restLength, restWidth);
int tilesWithRest = tilesWithoutRest + tilesRest;
System.out.println("You need " + tilesWithRest + " tiles.");
所以基本上我需要关于calculateRest的帮助
最佳答案
获得这样的东西怎么样?
基本上,假设private static final int TILE_DIMENSION = 20;
,您需要:
private int getTilesCount(final int floorWidth, final int floorHeight) {
final int horizontalTiles = (floorWidth % TILE_DIMENSION) + ((floorWidth / TILE_DIMENSION) == 0) ? 1 : 0;
final int verticalTiles = (floorHeight % TILE_DIMENSION) + ((floorHeight / TILE_DIMENSION) == 0) ? 1 : 0;
return horizontalTiles * verticalTiles;
}
我在这个方法中所做的事情可以简单地分解如下:
horizontalTiles
),verticalTiles
),以及以下是我计算每行/列中的图 block 数量的方法:
计算单行/列中可以容纳的图 block 数量:
floorWidth / TILE_DIMENSION
并添加 1 个图 block ,以防该行/列中剩余一些空白空间:
+ ((floorWidth / TILE_DIMENSION) == 0) ? 1 : 0;
<小时/>
顺便说一句,如果您还不知道,我在这里使用的语法 ((evalutaion) ? expression1 : expression2 ;
称为 Ternary Operator 。
它完全对应于doing(以伪代码形式):
variable result;
if (evaluation) {
result = expression1;
} else {
result = expression2;
}
关于java - 如何在 Java 中计算瓷砖地板需要多少 block 瓷砖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371604/
菜鸟问题:我试图将一个球扔到地板上并使其粘在那里,甚至滚过平面。现在它穿过飞机。我不确定我在哪里犯了错误,或者我是否做错了什么。 var world, timeStep=1/60, scene, re
我的代码工作正常,直到我在编译时突然收到这条消息: c:\program files (x86)\microsoft visual studio 12.0\vc\include\math.h(700)
如何在 jq jq-1.5-1-a5b5cbe 中对数字进行舍入、地板、天花板和截断? 例如,使用 {"mass": 188.72} , 我要 {"mass": 188}带地板,{"mass": 18
我知道在 Java(可能还有其他语言)中,Math.pow 是在 double 上定义的并返回一个 double 。我想知道到底为什么写 Java 的人不也写一个返回 int 的 pow(int, i
我是一名优秀的程序员,十分优秀!