3

例えば、

24987654 がある場合、24000000 を返す必要があります。これは可能ですか?

4

4 に答える 4

3

これが1つの素朴なアルゴリズムです:

n = 24987654
n / (10 ** (n.to_s.size - 2)) * (10 ** (n.to_s.size - 2)
=> 24000000
于 2013-03-20T22:02:05.170 に答える
1

これを行う別の方法は次のとおりです。

x -= x % (10 ** (Math.log(x, 10).to_i - 1))

上記のステートメントでは:

  1. Math.log(x, 10).to_i - 1削除する意味のない桁数を決定します
  2. x % (10 ** number_of_insignificant_digits)数値の重要でない部分を計算します
  3. 最初の数からステップ 2 の値を減算しx、結果が含まれるようになりました

プログラムのオンライン テストは次のとおりです: http://ideone.com/trSNOr

于 2013-03-20T22:21:24.197 に答える
0

別の方法:

n = 24987654
a = n.to_s[0, 2] + '0' * ((a.to_s.length)-2)

文字列を出力します:

=> "24000000"

.to_iメソッドを呼び出す整数として変換できます

于 2013-03-21T00:16:28.107 に答える