第十届蓝桥杯真题讲解

第一题:

编程实现:

用 1、3、5、8 这几个数字,能组成的互不相同且无重复数字的三位数各是多少? 总其有多少个?

输入:

输出:

多行数字,每行一个三位数

组成的三位数的总个数

count = 0
list = [1,3,5,8]
for i in list:
    for j in list:
        for k in list:
            if i != j and i != k and j != k:
                print(str(i) + str(j) + str(k))
                count += 1 
print("总共有" + str(count) + "个可组成的数字")

第二题:

编程实现 :

打印出1~ 1000 之间 包含 3 的数字如果3是连在一起的(如 233 )则在数字前加上&如果这个数字是质数则在数字后加上*

输人

输出

按照题意输出的数字 每行一个数字样例输出

例 3,13*,23*,&33,43* 33,43*.....&

def abc(number):
    math = True
    for i in range(2,number):
        if number%i == 0:
            math = False
    return math
for i in range(1,1001):
    if "3" in str(i):
        if abc(i) == True and "33" in str(i):
            print("&" + str(i) + "*")
        if abc(i) == True:
            print(str(i) + "*")
        else:
            print(i)

第三题;

编程实现:

用户在输入时,输入N个数字,每个数字用逗号隔开

要求:

(1)用户输入的数字个数

(2)用户输入的最小的数字

(3)将用户输入的数字按从大到小的顺序排列输出,数字之间以逗号做分割

(4)如果用户输入的数字小于等于26,则找到相应的26个大写的英文字母,字母A对应1,字母Z对应26,将用户输入的数字按照原来顺序转成对应的字母输出。如果输入的数字在1~26之外,则不显示相应字母(例:程序输入124,输出“[bad]”)

输入:

N个数字 2<=15

输出:

输入的数字个数

输入的最小数字

输入的数字按从大到小排序

输入的数字所对应的字母

ls2 = []
ls3 = []
list = []
a = input()
dic = {1: 'A', 2: 'B', 3: 'C', 4: 'D', 5: 'E', 6: 'F', 7: 'G', 8: 'H', 9: 'I', 10: 'J', 11: 'K', 12: 'L', 13: 'M', 14: 'N', 15: 'O', 16: 'P', 17: 'Q', 18: 'R', 19: 'S', 20: 'T', 21: 'U', 22: 'V', 23: 'W', 24: 'X', 25: 'Y', 26: 'Z'}
ls = a.split(",")
print(len(ls))
for i in ls:
    j = int(i)
    ls2.append(j)
print(min(ls2))
ls2.sort(reverse = True)
print(ls2)
for i in ls:
    list.append(int(i))
for i in list:
    if i in dic:
        ls3.append(dic[i])
    else:
        ls3.append("[bad]")
        break
if "[bad]" not in ls3:
    print(ls3)
else:
    print("[bad]")

上面是讲解的蓝桥杯算法题,因蓝桥杯注重与算法,所以只写了三道算法题的讲解

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值