![]() |
1
421
找到了一个优雅的解决方案:
|
![]() |
2
172
在CPU级别,转换为浮点和浮点似乎是一种巨大的时间浪费。 伊恩·尼尔森的解决方案:
可以简化为:
在faics中,这没有Brandon Durette指出的溢出错误,而且因为它只使用一次,所以您不需要专门存储recordsperpage,如果它来自一个昂贵的函数来从配置文件或其他东西中获取值的话。 也就是说,如果config.fetch使用数据库查找或其他方法,这可能效率低下:
这将创建一个您不真正需要的变量,它可能具有(较小的)内存含义,并且键入的内容太多:
这都是一行,只提取一次数据:
|
![]() |
3
62
这应该给你想要的。你肯定会希望x项除以y项,问题是当不均匀的数字出现时,所以如果有一个部分的页面,我们也要添加一个页面。
|
![]() |
4
61
对于C解决方案是将值强制转换为双精度(如Math.Heiling需要双精度):
在爪哇,你应该用数学来做同样的事情。 |
![]() |
5
17
伊恩提供的整数数学解决方案很好,但存在整数溢出错误。假设变量都是
如果
|
![]() |
6
7
一种变体 Nick Berardi's answer 避免分支:
注:
|
![]() |
7
4
对于记录==0,RjmUnro的解决方案给出1。正确的解决方案是0。也就是说,如果您知道records>0(我确信我们都假定recordsPerpage>0),那么rjmUnro解决方案将给出正确的结果,并且不会出现任何溢出问题。
所有 整数数学解决方案将比 任何 浮点解。 |
![]() |
8
3
需要扩展方法时:
这里没有检查(溢出,
另外,您可能会发现了解这一点也很有用(它得到了剩余的部分):
|
![]() |
9
2
另一种选择是使用mod()函数(或“%”。如果有非零余数,则递增除法的整数结果。 |
![]() |
10
1
我执行以下操作,处理任何溢出:
如果结果为0,则使用此扩展名:
另外,对于当前页码(未被询问,但可能有用):
|
![]() |
11
0
在零测试中删除分支的替代方法:
不确定这是否能在C语言中工作,应该在C/C++中进行。 |
![]() |
12
-1
一个泛型方法,它的结果可以迭代,这可能会引起您的兴趣:
|
![]() |
13
-2
我有一个类似的需求,我需要将分钟转换为小时和分钟。我用的是:
|
![]() |
14
-2
下面的四舍五入应该比上面的解决方案做得更好,但要牺牲性能(由于0.5*rctnominator的浮点计算):
|
![]() |
15
-4
您将需要执行浮点除法,然后使用天花板函数,将值四舍五入到下一个整数。 |