python回文数问题
defpld(k)要求输入k使return出来的结果是k位的随机回文数例如pld(3)>>121pld(10)>>2316226132请尽快急!...
def pld(k)
要求输入k 使return出来的结果是k位的随机回文数
例如
pld(3)
>> 121
pld(10)
>>2316226132
请尽快 急! 展开
要求输入k 使return出来的结果是k位的随机回文数
例如
pld(3)
>> 121
pld(10)
>>2316226132
请尽快 急! 展开
展开全部
import random
def pld(k):
return random.randint(10**(k-1),10**k-1)
if __name__=='__main__':
k = int(raw_input('Enter number:'))
print pld(k)
def pld(k):
return random.randint(10**(k-1),10**k-1)
if __name__=='__main__':
k = int(raw_input('Enter number:'))
print pld(k)
追问
好像不能运行啊。。。是不是缩进有点问题
能否用string的方法做,我们上课教了string 没教这么深的,而且考试也是围绕string来考的
追答
哦 我错了 我以为是返回一个指定长度的随机数呢,没有看到“回文”这个要求。
那你就先把 k 除以2,通过random得到一个k/2长度的整数。把这个整数转成string,得到part1,再逆序,得到part2。
判断k是否能被2整除,如果能整除,直接把上面两个连接起来就可以了。
如果不能整除,再随机产生一个1--9的数 放到part1和part2之间 就可以了。
至于string逆序:
a = '123'
a[::-1] 得到的就是 321了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询