资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给定n和len,输出n!末尾len位。
输入格式
一行两个正整数n和len。
输出格式
一行一个字符串,表示答案。长度不足用前置零补全。
样例输入
6 5
样例输出
00720
解答:
思路:1、将阶乘结果转换为字符串
2、如果len小于等于字符串长度,则直接输出末尾len位
3、如果len大于长度,则右对齐并在左侧补零
import math
n,m=map(int,input().split())
s=str(math.factorial(n))
if m<=len(s):
print(s[-m:])
else:
print(s.rjust(m,'0'))
知识点补充:
1、字符串左对齐,右侧补零
s1='abcdef'
s2=s1.ljust(9,'0')
print(s2)
输出结果为
2、字符串右对齐,左侧补零
s1='abcdef'
s2=s1.rjust(9,'0')
print(s2)
输出结果为:
在看了别的博客后,补充一下其他两种右对齐方法
法2:
s1='abcdef'
s2=s1.zfill(9)
print(s2)
输出结果为
此函数为默认补零,相对来说,上一种方法更灵活一些,可以自己设定补齐内容。
法3:这个方法好像只适用于整数,套入字符串的话会报错。
s1=123
s2='%09d' % s1
print(s2)
输出结果为: