我使用来自服务器的 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 shell 中的简单表达式
10834381661191220895731 * 10834381661191220895731
给出正确答案