結果

問題 No.219 巨大数の概算
ユーザー ntuda
提出日時 2025-01-20 23:03:40
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 368 ms / 1,500 ms
コード長 566 bytes
コンパイル時間 194 ms
コンパイル使用メモリ 81,792 KB
実行使用メモリ 77,824 KB
最終ジャッジ日時 2025-01-20 23:04:03
合計ジャッジ時間 17,234 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 51
権限があれば一括ダウンロードができます

ソースコード

diff #

def digit(x):
    i = 0
    while x >= 10:
        i += 1
        x /= 10
    return i

def calc(A,C):
    a,b = A
    c,d = C
    ac = a * c
    bd = b + d
    x = digit(ac)
    if x > 0:
        bd += x
        ac /= 10 ** x
    return (ac,bd)

for _ in range(int(input())):
    A,B = map(int,input().split())
    b = digit(A)
    a = A / (10 ** b)

    D = (a,b)
    X = (1,0)
    while B > 0:
        if B & 1:
            X = calc(D,X)
        B >>= 1
        D = calc(D,D)

    tmp = str(X[0])
    a0 = tmp[0]
    a1 = tmp[2]
    a2 = X[1]
    print(a0,a1,a2)
0