蓝桥等考Python组别十七级02(特别的回文数)

蓝桥等考Python组别十七级002

第一部分:选择题

1、Python L17 (15分)

运行下面程序,输出的结果是(    )。

def func(x, y):

    return (x - y) // 2

print(func(7, 5))

  1. 2
  2. 1
  3. 6
  4. 12

正确答案:B

2、Python L17 (15分)

运行下面程序,输出的结果是(    )。

def func(x):

    for i in range(2, x):

        if x % i == 0:

            print(i, end = ' ')

func(16)

2

2 4 8

1 2 4 8

2 4 8 16

正确答案:B

3、Python L17 (20分)

运行下面程序,输入哪个数时,输出的是True?(    )

def palindrome(x):

    if x[ : : -1] == x:

        return True

    return False

n = input()

print(palindrome(n))

12321

1212

12212

23312

正确答案:A

第二部分:编程题

4、Python L17 特别的回文数(50分)

题目描述:

若将一个自然数的各位数字反向排列所得的数与原数相等,则称这个自然数为回文数。(例如1001,12321都是回文数)。

输入一个正整数x,判断x是否符合以下特点:

1.x是回文数;

2.x中任何数字重复出现的次数都不大于2。

如果x符合上述特点,输出“yes”,否则输出“no”。

例如:

12321是回文数,在这个数中,数字1和2分别出现2次,数字3出现1次,任何数字重复出现的次数都不大于2,符合上述特点;

12233221也是回文数,但数字2出现了4次,不符合上述特点。

输入:

一个正整数x(1<=x<=100000)。

输出:

一个字符串,如果x符合题目描述中的两个特点,输出“yes”,否则输出“no”。

输入样例1:

12321

输出样例1:

yes

输入样例2:

12233221

输出样例2:

no

参考程序1:

def palindrome(x): #判断x是不是回文字符串

    if x[ : : -1] == x:

        return True

    return False

def check(x): #判断一个回文字符串,任何字符重复出现的次数是否不大于2

    s = set(x)

    if len(s) == (len(x) + 1) // 2:

        return True

    return False

n = input()

if palindrome(n) and check(n):

    print('yes')

else:

    print('no')

参考程序2:

def palindrome(x): #判断x是不是回文字符串

    if x[ : : -1] == x:

        return True

    return False

def check(x): #判断一个回文字符串,任何字符重复出现的次数是否不大于2

    dic={}

    for i in x:

        dic[i] = x.count(i)

    for i in dic.values():

        if i > 2:

            return False

    return True

n = input()

if palindrome(n) and check(n):

    print('yes')

else:

    print('no')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值