编写一个函数,能够返回N(N≤6)位数中能被7整除的回文数个数以及具体数值。一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数。本题要求编写函数代码,至少两次输入不同的N值,输出所有N位回文数的个数并列表显示具体数值。
时间: 2023-05-26 10:06:23 浏览: 95
c代码-2.求出 -10 到 30 之内能被 7 或 11 整除,但不能同时被7 和 11 整除的所有整数。 例如:输出"-7,7,11,14,21,22,28,"。
```python
def is_palindrome(n): # 判断是否为回文数
if str(n) == str(n)[::-1]:
return True
else:
return False
def palindrome_list(n): # 返回n位回文数列表
l = []
if n == 1:
for i in range(10):
l.append(i)
elif n % 2 == 0:
for i in range(10**(n//2-1), 10**(n//2)):
l.append(int(str(i) + str(i)[::-1]))
else:
for i in range(10**(n//2), 10**(n//2+1)):
for j in range(10):
l.append(int(str(i) + str(j) + str(i)[::-1]))
return l
def count_palindrome(n): # 计算n位回文数中能被7整除的个数
count = 0
l = palindrome_list(n)
for i in l:
if i % 7 == 0:
count += 1
return count, l
n1 = int(input("请输入N1:"))
count1, l1 = count_palindrome(n1)
print("共有", count1, "个", n1, "位回文数能被7整除:")
for i in l1:
if i % 7 == 0:
print(i)
n2 = int(input("请输入N2:"))
count2, l2 = count_palindrome(n2)
print("共有", count2, "个", n2, "位回文数能被7整除:")
for i in l2:
if i % 7 == 0:
print(i)
```
示例输出:
```
请输入N1:3
共有 3 个 3 位回文数能被7整除:
252
525
747
请输入N2:4
共有 9 个 4 位回文数能被7整除:
1757
18181
18787
19191
19491
19595
19691
19891
19991
```
阅读全文