爱意随风起9306 发表于 2023-1-1 18:35:02

python输入一个数字,输出这个数字的末六位

python如何输入一个数字,输出这个数字的末六位,如果出现0则不输出0

tommyyu 发表于 2023-1-1 18:40:20

本帖最后由 tommyyu 于 2023-1-1 18:52 编辑

输出该数除以1000000的余数即可。

Brucey 发表于 2023-1-1 18:48:22

取余得末位,然后整除10去掉末尾,此时原数的倒数第二位变成末位,重复上述步骤直到取完末六位

爱意随风起9306 发表于 2023-1-1 18:58:20

tommyyu 发表于 2023-1-1 18:40
输出该数除以1000000的余数即可。

那0呢

爱意随风起9306 发表于 2023-1-1 18:59:38

tommyyu 发表于 2023-1-1 18:40
输出该数除以1000000的余数即可。

def fac(m):
    while m >= 0:
      if m == 0:
            return 1
      else:
            return (m * fac(m - 1))
n = int(input())
s = 0
for i in range(1, n + 1):
    s += fac(i)
print(s%1000000)

tommyyu 发表于 2023-1-1 19:00:10

爱意随风起9306 发表于 2023-1-1 18:58
那0呢

>>> 1012345 % 1000000
12345

爱意随风起9306 发表于 2023-1-1 19:00:11

tommyyu 发表于 2023-1-1 18:40
输出该数除以1000000的余数即可。

这样好像不行吧

tommyyu 发表于 2023-1-1 19:01:36

爱意随风起9306 发表于 2023-1-1 19:00
这样好像不行吧

输出的不包含前导0

爱意随风起9306 发表于 2023-1-1 19:03:29

tommyyu 发表于 2023-1-1 19:01
输出的不包含前导0

https://thumbnail1.baidupcs.com/thumbnail/ac9b8b2b5pdefdba9da73708670cab23?fid=1590253992-250528-496167287402302&rt=pr&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-YPZklwdfxUYuOwwDcpkdhpsaj3k%3d&expires=8h&chkbd=0&chkv=0&dp-logid=18413492466370022&dp-callid=0&time=1672570800&size=c1463_u915&quality=90&vuk=1590253992&ft=image&autopolicy=1

爱意随风起9306 发表于 2023-1-1 19:04:31

tommyyu 发表于 2023-1-1 19:01
输出的不包含前导0

{:5_99:}

tommyyu 发表于 2023-1-1 19:04:55

爱意随风起9306 发表于 2023-1-1 19:03


取摸后(%1000000)输出确实满足题目要求。

爱意随风起9306 发表于 2023-1-1 19:05:44

tommyyu 发表于 2023-1-1 19:04
取摸后(%1000000)输出确实满足题目要求。

确实是满足,但是无法通过

tommyyu 发表于 2023-1-1 19:06:23

爱意随风起9306 发表于 2023-1-1 19:05
确实是满足,但是无法通过

是TLE么

爱意随风起9306 发表于 2023-1-1 19:06:55

tommyyu 发表于 2023-1-1 19:06
是TLE么

oj

tommyyu 发表于 2023-1-1 19:11:03

爱意随风起9306 发表于 2023-1-1 19:06
oj

{:10_282:}我的意思是报错形式是不是TLE

在n>=25时,输出值均为40313,因为25!为15511210043330985984000000,其后面有6个0,不会影响后六位数字,同理,n!(n>=25)也不会影响后六位数字。因此,在n>=25时,输出为一个固定值,也就是40313。def fac(m):
    while m >= 0:
      if m == 0:
            return 1
      else:
            return (m * fac(m - 1))   
n = int(input())
if n >= 25:
    print(40313)
else:
    print(sum()%100000)

爱意随风起9306 发表于 2023-1-1 19:15:41

tommyyu 发表于 2023-1-1 19:11
我的意思是报错形式是不是TLE

在n>=25时,输出值均为40313,因为25!为15511210043330985984 ...

https://thumbnail1.baidupcs.com/thumbnail/7f1e57531p3c11fca8c8557c32d191b7?fid=1590253992-250528-1030170177742333&rt=pr&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-cL60W5R7pdNmjAxJkamfdQFMgbg%3d&expires=8h&chkbd=0&chkv=0&dp-logid=18610459475910171&dp-callid=0&time=1672570800&size=c1463_u915&quality=90&vuk=1590253992&ft=image&autopolicy=1

爱意随风起9306 发表于 2023-1-1 19:16:12

tommyyu 发表于 2023-1-1 19:11
我的意思是报错形式是不是TLE

在n>=25时,输出值均为40313,因为25!为15511210043330985984 ...

破网站,连错哪都不知道

tommyyu 发表于 2023-1-1 19:17:01

爱意随风起9306 发表于 2023-1-1 19:15


有一个地方写错了{:10_282:}应该是940313,我算成后五位了def fac(m):
    while m >= 0:
      if m == 0:
            return 1
      else:
            return (m * fac(m - 1))   
n = int(input())
if n >= 25:
    print(940313)
else:
    print(sum()%1000000)

爱意随风起9306 发表于 2023-1-1 19:20:17

tommyyu 发表于 2023-1-1 19:17
有一个地方写错了应该是940313,我算成后五位了

不行,过不了

爱意随风起9306 发表于 2023-1-1 19:21:17

爱意随风起9306 发表于 2023-1-1 19:20
不行,过不了

在pycharm连10都运算不了
页: [1] 2
查看完整版本: python输入一个数字,输出这个数字的末六位