1000000000 987654321 123456789
Beim Tippen
A, B, C = map(int, input().split())
ans = (A * (A + 1) * B * (B + 1) * C * (C + 1) / 8) % 998244353
print(int(ans))
Ich antwortete so, aber WA kam heraus. Betrachten Sie die AC-Antworten anderer Leute
A, B, C = map(int, input().split())
ans = (A * (A + 1) * B * (B + 1) * C * (C + 1) // 8) % 998244353
print(int(ans))
Es gab nur einen Unterschied zwischen / oder // like.
print(type(A * (A + 1) * B * (B + 1) * C * (C + 1)/8))
print(A * (A + 1) * B * (B + 1) * C * (C + 1)//8)
Das Ergebnis ist ...
1.8584458350497822e+51
1858445835049782285757026664950217712384527500000000
Sie können sehen, dass // genau berechnet wird, während / in der Mitte abgeschnitten wird. Der Grund ist, dass es in den Float-Typ geändert wurde.
Dieses Wissen ist wichtig, aber es war zu spät, um das Problem zu lösen. Es tut weh, Problem A fallen zu lassen, das sofort gelöst werden kann, obwohl ich Problem B mit viel Aufwand gelöst habe.
Recommended Posts