将int分为2个其他int

时间:2011-07-23 14:38:01

标签: objective-c xcode variables int

我需要将一个int分成另外两个int。第一个int不是常数所以一个问题就是,如何处理奇数,因为我只想要整数。例如,如果int = 5,那么int(2)将= 2并且int(3)将= 3.任何帮助将非常值得赞赏。

3 个答案:

答案 0 :(得分:4)

假设您想表达x = a + b,其中ab尽可能接近x/2

a = ceiling(x / 2.0);
b = floor(x / 2.0);

这是伪代码,您必须从库中找出楼层和天花板的实际功能。确保除法作为浮点数执行。

纯粹的整数:

a = x / 2 + (x % 2 == 0 ? 0 : 1);
b = x / 2

(对于负数,这可能有点可疑,因为它取决于除数的行为和负数的模数。)

答案 1 :(得分:3)

你可以从数学中尝试ceil和floor函数来产生奇数输入的结果,如2和3;

  int(2)=ceil(int/2); //will produce 3 for input 5
  int(3)=floor(int/2); //will produce 2 for input 5

答案 2 :(得分:0)

我的答案不在Objective-C中,但我想你可以轻松地翻译它。 我的想法是:

part1 = source_number div 2
part2 = source_number div 2 + (source_number mod 2)

这样,如果起始编号为奇数,则第二个数字会更大。