做公司网站有什么亮点,标题正文型网站,网站建设推广好处,wordpress怎么适应手机端1. 问题描述
对称数是一个旋转180后#xff08;倒过来#xff09;看起来与原数相同的数#xff0c;找到所有长度为n的对称数。
2. 问题示例
给出n2#xff0c;返回[#xff02;11#xff02;#xff0c;#xff02;69#xff02;#xff0c;#xff02;88#x…1. 问题描述
对称数是一个旋转180°后倒过来看起来与原数相同的数找到所有长度为n的对称数。
2. 问题示例
给出n2返回[11698896]。
3. 代码实现
采用递归生成对称数的方法实现 具体步骤如下 对于长度为 0 的对称数返回空列表 []对于长度为 1 的对称数返回 [0, 1, 8]对于长度大于 1 的对称数可以通过递归地生成长度为 n-2 的对称数然后在两侧加上合适的数字来得到长度为 n 的对称数。 在两侧加上合适的数字可以使用循环遍历来实现需要注意开头不能是0。 def find_symmetric_numbers(n):if n 0:return []elif n 1:return [0, 1, 8]elif n 2:return [11, 69, 88, 96]else:result []symmetric_nums find_symmetric_numbers(n-2)for num in symmetric_nums:result.append(0 num 0)result.append(1 num 1)result.append(6 num 9)result.append(8 num 8)result.append(9 num 6)return resultn int(input(请输入对称数的长度))
result find_symmetric_numbers(n)
print(长度为, n, 的对称数是:, result)这个算法使用了递归生成对称数时间复杂度取决于生成的对称数个数可以表示为 O(k^n)其中 k 是每个位置可能的数字个数这里是5因为可以是0, 1, 6, 8, 9n 是对称数的长度。在实际应用中n 一般不会太大因此该算法是有效的。