我正在做一項任務,所以請不要直接爲我解決這個問題。
我需要採取ugly_ouput
這裏將是=> 1x^3+-2x^2+3x^1+4x^0+
並使其=> x^3-2x^2+3x+4
。我知道我需要使用正則表達式,但我無法使我的make_pretty
方法合作。全部。即使試圖找到所有的x,並用y替換它們也不起作用。你能否指點我正確的方向?無法獲取gsub!和正則表達式來工作我的方法
class Polynomials
def initialize coefficient
@coefficient = coefficient
end
def ugly_output
exponent = @coefficient.length - 1
@coefficient.each do |i|
unless i == 0
print "#{i}x^#{exponent}+"
exponent -= 1
end
end
end
def make_pretty
# get rid of 0's, +-, and ^1 when they appear in output
ugly_output.to_s.gsub!(/\+-/, "-")
end
end
#polynom = Polynomials.new [1, -2, 3, 4]
polynom = Polynomials.new [-3, -4, 1, 0, 6]
polynom.make_pretty
的分配規則:
- 如果係數爲1
,它不會打印
- 如果係數爲負,你必須顯示類似-2x^3
,不+-2x^3
- 如果係數爲0
,沒有被添加到^1
部分被省略
輸出
- 用於x^1
- x^0 == 1
,所以我們並不需要d isplay it
您的ugly_output是直接打印結果,打印什麼,打印出來,以後不能更改。 – Meier
因爲係數是'1',請檢查'@係數'是否爲'1',只是在沒有'i'的情況下打印。你不需要任何一種正則表達式。 –
@Meier,你是對的。編輯:如果您已閱讀我的評論,請忽略它。 –