一開始一直醬
您的程式被監控系統中斷,可能是程式無法正常結束所導致。 Traceback (most recent call last): File "/4558885/code_4558885.py", line 6, in print("{:.50f}".format(Decimal(line).sqrt())) decimal.InvalidOperation: [<class 'decimal.conversionsyntax'="">]
decimal 模組只會在 0 ** 0、負數開平方之類的時候才會 InvalidOperation 啊,可是這題不 4 保證 n >= 1 ?
加了 try 在 except 時 print 出測資看看,結果...
.
.
.
就 AC 惹!!!???
傑克,太神奇惹八
>///<
一開始一直醬
您的程式被監控系統中斷,可能是程式無法正常結束所導致。 Traceback (most recent call last): File "/4558885/code_4558885.py", line 6, in print("{:.50f}".format(Decimal(line).sqrt())) decimal.InvalidOperation: [<class 'decimal.conversionsyntax'="">]
decimal 模組只會在 0 ** 0、負數開平方之類的時候才會 InvalidOperation 啊,可是這題不 4 保證 n >= 1 ?
加了 try 在 except 時 print 出測資看看,結果...
.
.
.
就 AC 惹!!!???
傑克,太神奇惹八
>///<
import sys
from decimal import *
setcontext(Context(prec=51,rounding=ROUND_HALF_EVEN))
while True:
try:
line=sys.stdin.readline().strip()
try:
print("{:.50f}".format(Decimal(line).sqrt()))
except:
print(line)
except:
break
醬為什麼有誤差?
一開始一直醬
您的程式被監控系統中斷,可能是程式無法正常結束所導致。 Traceback (most recent call last): File "/4558885/code_4558885.py", line 6, in print("{:.50f}".format(Decimal(line).sqrt())) decimal.InvalidOperation: [<class 'decimal.conversionsyntax'="">]
decimal 模組只會在 0 ** 0、負數開平方之類的時候才會 InvalidOperation 啊,可是這題不 4 保證 n >= 1 ?
加了 try 在 except 時 print 出測資看看,結果...
.
.
.
就 AC 惹!!!???
傑克,太神奇惹八
>///<
import sys
from decimal import *
setcontext(Context(prec=51,rounding=ROUND_HALF_EVEN))
while True:
try:
line=sys.stdin.readline().strip()
try:
print("{:.50f}".format(Decimal(line).sqrt()))
except:
print(line)
except:
break
醬為什麼有誤差?
1. 這題是要「無條件捨去」,我是用 ROUND_DOWN
2. Decimal 模組的 prec 的意思,指的似乎不是小數點位數,而是有效位數。例如,'{:.0f}'.format(Decimal('87') ** 69)
在預設 prec = 28 結果為 '67116365536530359757751984840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',將 prec 設為 134 後,結果為 '67116365536530359757751984838846954040141754129496075653516752718132262827216589769878979369926777587459797697901421443666703214038327'
以上 祝 AC
一開始一直醬
您的程式被監控系統中斷,可能是程式無法正常結束所導致。 Traceback (most recent call last): File "/4558885/code_4558885.py", line 6, in print("{:.50f}".format(Decimal(line).sqrt())) decimal.InvalidOperation: [<class 'decimal.conversionsyntax'="">]
decimal 模組只會在 0 ** 0、負數開平方之類的時候才會 InvalidOperation 啊,可是這題不 4 保證 n >= 1 ?
加了 try 在 except 時 print 出測資看看,結果...
.
.
.
就 AC 惹!!!???
傑克,太神奇惹八
>///<
import sys
from decimal import *
setcontext(Context(prec=51,rounding=ROUND_HALF_EVEN))
while True:
try:
line=sys.stdin.readline().strip()
try:
print("{:.50f}".format(Decimal(line).sqrt()))
except:
print(line)
except:
break
醬為什麼有誤差?
1. 這題是要「無條件捨去」,我是用 ROUND_DOWN
2. Decimal 模組的 prec 的意思,指的似乎不是小數點位數,而是有效位數。例如,'{:.0f}'.format(Decimal('87') ** 69)
在預設 prec = 28 結果為 '67116365536530359757751984840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',將 prec 設為 134 後,結果為 '67116365536530359757751984838846954040141754129496075653516752718132262827216589769878979369926777587459797697901421443666703214038327'
以上 祝 AC
謝謝!