寫膩大整數運算了嗎?不怕不怕!高精度浮點數運算來囉!
蛤?嫌只有加減乘除太簡單了?沒關係沒關係,這邊再加碼指對數與三角函數,讓你想寫多少,就寫多少!
輸入檔共有 $T (T \leq 100)$ 行,一行代表一筆測資。
每筆測資的格式皆為 [op] [a_1] ... [a_k] [p]
,參數間以一空白隔開,且行末沒有多餘空白。其中
op
為一 $k$ 元運算子,只能是 add
, sub
, mul
, div
, pow
, atan2
, exp
, ln
, sqrt
, asin
, acos
, atan
, sin
, cos
, tan
,分別代表加法、減法、乘法、除法、次方、atan2 函數、自然指數函數、自然對數函數、(非負) 平方根、反正弦函數、反餘弦函數、反正切函數、正弦函數、餘弦函數、正切函數。前 $6$ 種運算子為二元運算子,而後 $9$ 種運算子則為一元運算子。a_1
, ..., a_k
為運算元,皆為浮點數,且最多只會出現 $20$ 位數。本題浮點數輸入/輸出格式詳述在後。p
為一不大於 $50$ 的正整數。浮點數格式為 [sgn][int][frac]
,其中
sgn
只能是空字串或 "-
" (不含引號)。另,若 [int][frac]
表示的浮點數數值為 $0$,則 sgn
應為空字串,亦即不應出現 "-0.000
"。int
為一非負整數。若其值為 $0$,則應用 "0
" (不含引號) 表示;若其值為正,則不應有 leading zero。frac
格式只能是空字串或 ".[d]
" (不含引號),其中 d
為一非空數字字串。此外,
div
運算中,第二個運算元必不為 $0$。pow
, exp
, ln
, sqrt
運算中,所有運算元皆嚴格大於 $0$。atan2
運算中,至少一個運算元不為 $0$。asin
與 acos
運算中,運算元的絕對值皆嚴格小於 $1$。對於每筆測資,輸出一行,代表運算結果四捨五入到小數以下 $p$ 位的結果,如運算結果恰為 $-0.375$ 且 $p=2$,則應輸出 "-0.38
" (不含引號)。保證運算結果的絕對值不超過 $10^{10}$。另,由於浮點數誤差,保證四則運算外的捨入誤差 (round-off error) 不會恰為 $5\times10^{-p-1}$。
add 1.357 4.6279 10 sub 1.357 4.6279 10 mul 1.357 4.6279 10 div 1 103 30 pow 12.2 12.15 20 atan2 2.45 1.77 30 exp 10.98 50 ln 21.065 50 sqrt 2 40 asin 0.81 30 acos 0.47 35 atan 0.618 40 sin 3.1415 25 cos 2.0113 50 tan 1.78987 30
5.9849000000 -3.2709000000 6.2800603000 0.009708737864077669902912621359 15822384813181.61872382001683484036 0.945162277467215967394902628052 58688.55427461755601946329091442988532551237342326651423 3.04761289543097985660178308429069456872534888053139 1.4142135623730950488016887242096980785697 0.944152115154155950477697775653 1.08150554878078090500864808815790029 0.5535497640327316544572642343482671646331 0.0000926535896606714405662 -0.42639511018918176703311006536787403871085921161347 -4.491415179046604916096895094786
這題大概是我寫過最長的忍耐任務了@@
我上傳UVa的AC程式碼超過20KB 將近900行
測資的第1-15行就是範測
第16-30行只有加減乘除
如果你發現自己在30行內WA掉
請再確認自己的輸出格式是否正確
另外 如果你覺得自己在31行以後WA得太沒有道理了
可以寄訊息問我 有空的話會幫你看看 也許只是我的code算錯了wwwwww
ID | User | Problem | Subject | Hit | Post Date |
沒有發現任何「解題報告」
|