【问题标题】:Divide int into 2 other int将 int 分成 2 个其他 int
【发布时间】:2011-10-11 16:17:19
【问题描述】:

我需要将一个 int 分成 2 个其他 int。第一个 int 不是恒定的,所以一个问题是,如何处理奇数,因为我只想要整数。例如,如果 int = 5,则 int(2) 将 = 2 并且 int(3) 将 = 3。任何帮助将不胜感激。

【问题讨论】:

  • 你的问题很不清楚。 n-11 将始终添加到 n 并符合您解释的要求。

标签: objective-c xcode variables int


【解决方案1】:

假设你想表达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

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

【讨论】:

    【解决方案2】:

    您可以尝试数学中的 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
    

    【讨论】:

    • 我建议将 ceil 的参数转换为双精度或浮点数,因为整数除法会截断......所以它会是 int(2) = ceil((float)int / 2.0f);
    【解决方案3】:

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

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

    这样如果起始数字是奇数,第二个数字会更大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-11
      • 2019-11-29
      • 2015-05-20
      • 2018-07-24
      • 2014-09-11
      • 1970-01-01
      • 2013-10-15
      • 1970-01-01
      相关资源
      最近更新 更多