Java: используйте Math.abs и ведите учет того, как часто он использовался для последующего использования. - PullRequest
1 голос
/ 27 января 2012

Я пытаюсь написать программу, которая изменяет дроби, и мне нужно убедиться, что отрицательный знак "-" правильно выводится только один раз. Если пользователь вводит числитель и знаменатель и вводит их как отрицательные, я не могу показать -1 / -2. То же самое только с одним негативом, я не могу показать 1 / -2. Решение, которое я придумала, состоит в том, чтобы удалить негативы из числа и числа с помощью Math.abs, а затем добавить негатив во время вывода, если Math.abs нужно было использовать только один раз. Если он использовался дважды, я включил логику, чтобы вывести только числа и числа с удаленным минусом. Как вести подсчет того, как часто использовались Math.abs, а также предотвращать появление ложноположительного результата, когда пользователь вводит положительное число для num или den или для обоих. Мой код на данный момент выполняет только преобразование в абсолютное значение, поэтому мне нечего показать для подсчета.

snum = Math.abs(num);

* Где num - это введенное пользователем число, а snum - это число, преобразованное в abs.

Любая помощь будет оценена.

Спасибо, INGUES

Ответы [ 3 ]

5 голосов
/ 27 января 2012

Если знаменатель отрицательный, просто переверните знаки обоих.

0 голосов
/ 27 января 2012

псевдокод:

if numerator < 0 and denominator < 0 then
   numerator = -numerator
   denominator = -denominator
   sign = '+'
elsif numerator < 0 then
   numerator = -numerator
   sign = '-'
elsif denominator < 0 then
   denominator = -denominator
   sign = '-'
end if

print sign, numerator, '/', denominator
0 голосов
/ 27 января 2012

Нет, оставьте знак минуса во внутреннем представлении без изменений, поврежден только вывод.Вот мое решение:

String sign = (num * denom < 0)? "-" : "";
System.out.println(sign + Math.abs(num) + "/" + Math.abs(denom));
...