繁体   English   中英

如何获得数字的中间5位数字

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM