我正在做一个小项目,我实际上需要弄清楚数字的中间5位数字(例如123454321
将返回34543
)。如果数字是4位数字(例如1234
),它将返回中间的两位数(对于1234
,则为23
)。如果数字是3位数字,它将返回中间数字(例如123
将返回2
),如果数字是1或2位数字,则代码将不接受输入。
我已经尝试过在线进行一些研究,但是除了"Middle-square method"之外没有找到其他任何东西,但是他们发现的implementation for python似乎没有用。
num = 730945296 #Random number for testing
num_len = len(str(num))
print(num*num) #debug
print(str(num*num).zfill(num_len)) #debug
num = int(str(num*num).zfill(num_len)[round(num_len/4):round((num_len/4)*3)])
print(num)
是我对implementation for python的表示,但是如上所述,这似乎不起作用。
在这种情况下,输出为9452
,但我期望为09452
。
我知道我没有做额外的检查,例如输出是否超过5位或输入多长时间,但我认为我应该集中精力首先获取中间数字。
答案 0 :(得分:2)
提示::答案开头没有得到0
的原因是,您将值存储为int
。尝试使用字符串作为数字,问题将是小菜一碟。