2016-12-15 9 views
-1

fixnumに対応するString charsメソッドはありますか?整数値を値で区切って配列にしようとしています。 1234 - > [1、2、3、4]を実行して、個々の値に対して操作を実行します。整数値を配列に分割する

文字列に変換してから操作(例:x2)を実行し、整数として結合する方が良いですか?以下のようになります。

+0

[OK]をクリックすると、文字列に変換されずに終了します: 'Math.log10(1234).floor.downto(0).map {| i | (1234年から1210年** I)%10} ' #=> [1、2、3、4] –

+0

@AndreyDeineko:ええ、私はそのような何か:) –

+0

@SergioTulentsevを意味し、私も何かを使用して考えることがなかったですこのように..それは効率(または任意の点で)の面では意味があると思いますか? –

答えて

0

数字を個々の数字に分割することは、一般的にナンセンスなので、数字ではありません。あなたはまたそれを数学的にすることもできますが、これまでの所要条件(これまでのところ)を考慮すると、明確な利点はありません。

私は

n.to_s.chars.map(&:to_i).map { |n| n * 2 }.join.to_i 

それはもう少し汎用性だし、あなたの乗数の変化、たとえば、場合、それはここでは示されていない(変更するのは簡単だが、そこにある、例えば、変換および乗算を分割することを好むかもしれません方法)。

+0

'数字を個々の数字に分割するものはありません。 - [明らかに存在します:]](http://stackoverflow.com/a/12908181/1772830) –

+0

@AndreyDeineko \tあなたは間違いなく数学でそれをやることができますが、それがもっと効率的で分かりやすいのであれば少し驚いています。私の主張は、これを行う*ものは何もないということでした。 –

+2

@DaveNewtonちょうど10日待つ:https://ruby-doc.org/core-2.4.0_rc1/Integer.html#method-i-digits – steenslag

関連する問題