我正在尝试编写一个修改分数的程序,我需要确保“ - ”负数只能正确输出一次。如果用户输入分子和分母并将它们都作为负数放入,则无法显示-1 / -2。同样只有一个负数,我不能显示1 / -2。我提出的解决方案是使用Math.abs从num和den中删除负数,然后在输出IF中添加负数。只需要使用一次Math.abs。如果它被使用了两次,我将包括逻辑,只输出num和den,并删除负数。 如何计算Math.abs的使用频率,并防止在用户输入num或den或两者的正数时出现误报。
目前我的代码只进行转换为绝对值的工作,因此我无需显示任何数据。
snum = Math.abs(num);
*其中num是用户输入的数字,snum是绝对转换的数字。
任何帮助都将不胜感激。
谢谢, INGUES
答案 0 :(得分:5)
如果分母是负数,只需翻转两者的符号。
答案 1 :(得分:0)
不,在内部表示中保留减号,只有输出被破坏。这是我的解决方案:
String sign = (num * denom < 0)? "-" : "";
System.out.println(sign + Math.abs(num) + "/" + Math.abs(denom));
答案 2 :(得分:0)
伪代码:
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