結果
| 問題 |
No.1842 Decimal Point
|
| コンテスト | |
| ユーザー |
tamato
|
| 提出日時 | 2022-02-18 22:41:50 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 376 ms / 2,000 ms |
| コード長 | 992 bytes |
| コンパイル時間 | 297 ms |
| コンパイル使用メモリ | 82,448 KB |
| 実行使用メモリ | 77,420 KB |
| 最終ジャッジ日時 | 2024-06-29 09:26:56 |
| 合計ジャッジ時間 | 2,091 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 5 |
ソースコード
mod = 1000000007
eps = 10**-9
def main():
import sys
import math
input = sys.stdin.readline
inv = {1: 1, 3: 7, 7: 3, 9: 9}
for _ in range(int(input())):
a, b, c = map(int, input().split())
q = pow(10, c, b)
cnt2 = cnt5 = 0
while b % 2 == 0:
cnt2 += 1
b //= 2
q //= 2
while b % 5 == 0:
cnt5 += 1
b //= 5
q //= 5
cnt = max(cnt2, cnt5)
if cnt > c:
if cnt2 < cnt5:
a *= 2 ** (cnt5 - cnt2)
else:
a *= 5 ** (cnt2 - cnt5)
d = cnt - c
x = a // b
x = str(x).zfill(100)
print(x[-d - 1])
continue
r = (pow(2, c - cnt2, 10) * pow(5, c - cnt5, 10)) % 10
p = ((r-q) * inv[b % 10]) % 10
ans0 = (a * p) % 10
ans1 = ((a * q) // b) % 10
print((ans0 + ans1) % 10)
if __name__ == '__main__':
main()
tamato