0

長さが奇数の場合、つまりinput = "102" first_half = "1" second_half = "2"の場合、ルビーが中央の数字を無視して、数字の文字列の前半と後半を見つけようとしています。

このコードを使用する

i = gets
first_half=i[0..(i.length / 2 - 1).floor]
second_half = i[i.length -first_half.length)..i.length - 1]
print "#{first_half}\n#{second_half}"

ただし、この入力の場合、出力は10( "\ n")2です。

ただし、コードはirbでは正しく機能します。誰かが私が抱えている問題が何であるかを見ることができますか?

4

3 に答える 3

2
i = gets

末尾に改行文字が含まれる文字列を返します。つまり、文字列は"102\n"であるため、長さは4になります。

于 2009-08-16T16:16:13.080 に答える
1

使用するi=gets.chomp

于 2009-08-16T16:19:48.593 に答える
0
i = gets.chomp
first_half=i[0..(i.length / 2 - 1).floor]
second_half = i[(i.length - first_half.length).. i.length - 1]
print "#{first_half}\n#{second_half}"

iano:Desktop ian$ ruby stack.rb 
102
1
2

問題は(いくつかのマイナーな構文エラーがありましたが)、チョップする必要があることです(入力文字列の最後にある「\ n」文字を削除します)。

于 2009-08-16T16:20:11.167 に答える