700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 计蒜客——回文平方数

计蒜客——回文平方数

时间:2022-07-01 12:31:55

相关推荐

计蒜客——回文平方数

回文数是指从左向右念和从右向左念都一样的数。如123321就是一个典型的回文数。

给定一个进制B(2≤B≤20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10,11等等。

输入包括一行,为一个十进制的整数B

输出所有B进制的符合要求的数字,每行两个,第二个数是第一个数的平方,且两个数都是回文数。(此处有误,根据提交的代码通过可知,应该是且两个数都是B进制整数)

样例输入复制

10

样例输出复制

1 12 43 911 12122 48426 676101 1011 12321121 14641202 40804212 44944264 69696

此题关键在如何将十进制数转换为B进制数。

可以使用查表法,如 l = [0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J'],但比较繁琐,提倡。def baseN(num, a):

return ((num == 0) and "0") or (baseN(num // a, a).lstrip("0") + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[num % a]) 此定义函数可以将任意十进制数转换成2~36进制数。

python程序:

def baseN(num, a):return ((num == 0) and "0") or (baseN(num // a, a).lstrip("0") + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[num % a])a = eval(input())for i in range(1,301):if baseN(i*i,a)==baseN(i*i,a)[::-1]:print(baseN(i,a),baseN(i*i,a))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。