回答編集履歴
2
別解追記
answer
CHANGED
@@ -8,4 +8,15 @@
|
|
8
8
|
end
|
9
9
|
```
|
10
10
|
|
11
|
-
`BigDecimal`ライブラリを使うと、任意精度(jの上限無し)にも出来ます。
|
11
|
+
`BigDecimal`ライブラリを使うと、任意精度(jの上限無し)にも出来ます。
|
12
|
+
|
13
|
+
追記:
|
14
|
+
`BigDecimal`版です。`j+1`のところは`j`でも良いかもしれないけど考えてません。
|
15
|
+
```Ruby
|
16
|
+
require "bigdecimal"
|
17
|
+
|
18
|
+
def foo(n,i,j)
|
19
|
+
fraction = BigDecimal(1).div(BigDecimal(n),j+1).to_s("f")[1..-1]
|
20
|
+
fraction[i..j].split(//).inject(0){|sum,x| sum+=x.to_i}
|
21
|
+
end
|
22
|
+
```
|
1
誤りの修正
answer
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
```Ruby
|
5
5
|
def foo(n,i,j)
|
6
|
-
fraction = (1.0/n)
|
6
|
+
fraction = sprintf("%.#{j+1}f",1.0/n)[1..-1]
|
7
7
|
fraction[i..j].split(//).inject(0){|sum,x| sum+=x.to_i}
|
8
8
|
end
|
9
9
|
```
|