サーバーから telnet を使用して 'x * y' のような文字列を取得します。x と y はどちらも自然数です。必要なのは、正しい答えをサーバーに送り返すことだけです。桁数が 22 未満の場合、以下のコードから得られる答えは正しいですが、それ以上の場合は、何か問題が発生します。コードは次のとおりです。
import telnetlib
tn = telnetlib.Telnet(host, port)
while 1:
eq = tn.read_some().decode("utf-8")
eq = eq[:-2]
params = eq.split()
if (eq != ""):
try:
x=int(params[0])
y=int(params[2])
res = x*y
tn.write(str(res).encode('latin-1'))
except:
print(eq)
break
たとえば、
x=5892389056261064794905 #,
y=7028717678246449032337 #then
res=41415939126848056288120885900543594617842985
そしてそれは正しいです。しかし、もし
x=10834381661191220895731,
y=1501035997383808848779 #,
aswer は正しくありません。主な問題は、Python シェルでの単純な式です。
10834381661191220895731 * 10834381661191220895731
正しい答えを与える