#17083: 驚!99% NA 只要仄樣修改 code 就 AC 惹!!!


nevikw39 (牜攵)

學校 : 國立臺中第一高級中學
編號 : 89903
來源 : [140.114.207.96]
最後登入時間 :
2023-05-16 17:02:16

一開始一直醬

#0: 1% RE (code:1)

您的程式被監控系統中斷,可能是程式無法正常結束所導致。
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 惹!!!???

傑克,太神奇惹八

>///<

#17552: Re:驚!99% NA 只要仄樣修改 code 就 AC 惹!!!


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.137.60.223]
最後登入時間 :
2025-05-23 17:43:44

一開始一直醬

#0: 1% RE (code:1)

您的程式被監控系統中斷,可能是程式無法正常結束所導致。
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

 

醬為什麼有誤差?



#17585: Re:驚!99% NA 只要仄樣修改 code 就 AC 惹!!!


nevikw39 (牜攵)

學校 : 國立臺中第一高級中學
編號 : 89903
來源 : [140.114.207.96]
最後登入時間 :
2023-05-16 17:02:16

一開始一直醬

#0: 1% RE (code:1)

您的程式被監控系統中斷,可能是程式無法正常結束所導致。
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

#17589: Re:驚!99% NA 只要仄樣修改 code 就 AC 惹!!!


314159265358979323846264338327 ... (少年π)

學校 : 臺北市私立延平高級中學
編號 : 69058
來源 : [223.137.60.223]
最後登入時間 :
2025-05-23 17:43:44

一開始一直醬

#0: 1% RE (code:1)

您的程式被監控系統中斷,可能是程式無法正常結束所導致。
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

謝謝!