結果
問題 |
No.428 小数から逃げる夢
|
ユーザー |
![]() |
提出日時 | 2018-06-06 12:55:24 |
言語 | Lua (LuaJit 2.1.1734355927) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,503 bytes |
コンパイル時間 | 34 ms |
コンパイル使用メモリ | 6,948 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-30 10:14:36 |
合計ジャッジ時間 | 2,610 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 100 |
ソースコード
D='1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991' print((function (f, g, N) if N=="1" then return "0."..D end if N=="10" then return D:sub(1,1).."."..D:sub(2) end if N=="100" then return D:sub(1,2).."."..D:sub(3) end if #N==1 then return f(tonumber(N),0) end if N:sub(2,2)=="0" then return f(tonumber(N:sub(1,1)),1) end return g(tonumber(N:sub(1,1)),tonumber(N:sub(2,2))) end)(function (n, idx) local a={} local t=tonumber(D:sub(#D))*n local c=math.floor(t/10) table.insert(a,1,t%10) for i=#D-1,1,-1 do t=tonumber(D:sub(i,i))*n+c c=math.floor(t/10) table.insert(a,1,t%10) end if c~=0 then table.insert(a,1,c) end if idx+#a-#D==0 then table.insert(a,1,"0.") else table.insert(a,1+idx+#a-#D,".") end return table.concat(a) end, function (m, n) local a={} local t=tonumber(D:sub(#D)) local t2,t1=t*m,t*n local c2,c1=math.floor(t2/10),math.floor(t1/10) table.insert(a,1,t1%10) t=tonumber(D:sub(#D-1,#D-1)) t1=t*n+c1 c1=math.floor(t1/10) table.insert(a,1,(t2+t1)%10) local c=t2%10+t1%10>9 and 1 or 0 t2=t*m+c2 c2=math.floor(t2/10) for i=#D-2,1,-1 do t=tonumber(D:sub(i,i)) t1=t*n+c1 c1=math.floor(t1/10) table.insert(a,1,(t2%10+t1%10+c)%10) c=t2%10+t1%10+c>9 and 1 or 0 t2=t*m+c2 c2=math.floor(t2/10) end table.insert(a,1,t2+c1+c) table.insert(a,1+#a-#D,".") return table.concat(a) end, io.stdin:read("*l")))