【发布时间】:2015-12-26 01:08:44
【问题描述】:
我的程序的说明是创建一个方法,该方法接受一个字符串并返回任何奇数周围的破折号,但最终结果可能不是以破折号"-" 开头或结尾的例外。例如,如果我输入"95601137",它应该返回
"9 - 5 - 6 0 - 1 - 1 - 3 - 7"
代码如下:
def dashes(number)
string = number.to_s
i=0
final = []
while i<string.length
digit = string[i].to_i
if ((digit)%2 != 0) && (i==0) && (string.length == 1) && ((string.length - 1) == 0)
final.push(string[i])
elsif ((digit)%2 != 0) && (i==0) && (string.length != 1) && ((string.length - 1) > 0)
final.push(string[i] + "-")
elsif ((digit)%2 != 0) && (i>0) && (i!=(string.length - 1)) && ((string.length != 1))
final.push("-" + string[i] + "-")
elsif ((digit)%2 != 0) && (i!=0) && (i==(string.length - 1))
final.push("-" + string[i])
else final.push(string[i])
end
i+=1
end
return final
end
puts("Give me any number.")
answer = gets
puts dashes(answer)
我的程序有两个问题:
- 当我输入
9时,它返回"9-"。怎么会? - 当我输入一个以奇数结尾的字符串时,它会在末尾添加一个破折号,这是意料之外的。我以为我的
if条件也很严格。
【问题讨论】:
-
非常感谢大家的帮助!