[英]How to get the middle 5 digits of a number
我在做一个小项目,我基本上需要找出一些中间5位数字(如123454321
将返回34543
)。 如果数字是4个数字(如1234
),它会返回中间两个(在的情况下, 1234
,这将是23
)。 如果数字是3位数字,它将返回中间数字(例如123
将返回2
),并且如果数字是1或2位数字,则代码将不接受输入。
我已经尝试过在线进行一些研究,但是除了“ Middle-square method”之外,还没有找到其他任何东西,但是他们使用的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)
是我对python实现的表示,但是如上所述,这似乎不起作用。
在这种情况下,输出为9452
但我期望为09452
。
我知道我没有做额外的检查,例如输出是否超过5位或输入多长时间,但我认为我应该集中精力首先获取中间位。
提示:答案开头没有得到0
的原因是,您将值存储为int
。 尝试使用字符串作为数字,问题将是小菜一碟。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.