Разделите int на 2 других int - PullRequest
0 голосов
/ 23 июля 2011

Мне нужно разделить один int на 2 других int. первое int не является константой, поэтому одной проблемой будет то, что делать с нечетными числами, потому что я хочу только целые числа. Например, если int = 5, то int (2) будет = 2, а int (3) будет = 3. Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

4 голосов
/ 23 июля 2011

Предположим, вы хотите выразить x = a + b, где a и b максимально приближены к x/2:

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

Это псевдокод, вы должны выяснить фактические функции для пола и потолка в вашей библиотеке. Убедитесь, что деление выполняется как числа с плавающей запятой.

как чистые целые числа:

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

(Это может быть немного подозрительно для отрицательных чисел, поскольку это будет зависеть от поведения деления и по модулю для отрицательных чисел.)

3 голосов
/ 23 июля 2011

Вы можете попробовать функции 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
0 голосов
/ 23 июля 2011

Ну, мой ответ не в Objective-C, но я думаю, вы могли бы перевести это легко.Моя идея:

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

Таким образом, второе число будет больше, если начальное число нечетное число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...