蓝桥杯真题训练

1

 

import datetime
a = datetime.datetime(2020,7,1,12,0)
b = datetime.datetime(1921,7,23,12,0)
c = a - b
print(c*24*60)

2、

将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。
  请问,总共能排列如多少个不同的单词。

import itertools
a = ['L','A','N','Q','I','A','O']
b = list(set(itertools.permutations(a,len(a))))

3、1对括号,可以组成一种合法括号序列:()。
  由2对括号,可以组成两种合法括号序列:()()、(())。
  由4对括号组成的合法括号序列一共有多少种?

import itertools
def cheak(li) :
    li = list(li)
    if li[0] == ")":
        return 0
    else :
        lis = []
        for i in li:
            if i == "(" :
                lis.append(i)
            else :
                if lis.count(")")+1 <= lis.count("(") :
                    lis.append(i)
                else:
                    return 0
    return 1

a = ["(",")","(",")","(",")","(",")"]
b = list(itertools.permutations(a,len(a)))
# for i in b:
#     print(i)
# print(b)
c = set()
for i in b :
    if cheak(i) :
        c.add(i)
print(len(c))

4、凯撒密码加密+3(不确定是否满足所有情况)

old = input()
new = str()
for i in old :
    a = ord(i)
    b = chr(a+3)
    new += b
print(new)

5、1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …
每项是前一项的一半,如果一共有20项,
求这个和是多少,结果用分数表示出来。

# 5/累加求和 fractions库是分数表示库
import fractions
sum = 0
for i in range(20):
    a = 1/pow(2,i)
    sum += a
print(fractions.Fraction(sum))
# fractions.Fraction(a,b)会表示成a/b的形式,或者只给一个参数,第二个argument默认为1

6 图片旋转

图片旋转是对图片最简单的处理方式之一,在本题中,需要对图片顺时针旋转 90 度。用一个 n×m 的二维数组来表示一个图片,例如给出一个 3×4 的图片的例子:

1 3 5 7

9 8 7 6

3 5 9 7

这个图片顺时针旋转 90 度后的图片如下:

3 9 1

5 8 3

9 7 5

7 6 7

给定初始图片,请计算旋转后的图片

n,m = map(int,input().split())
p = list()
for i in range(n) :
    a = list(map(int,input().split()))
    p.append(a)
new = list()
for j in range(m) :
    b = list()
    for i in range(n-1,-1,-1) :
        a = p[i][j]
        b.append(a)
    new.append(b)
for k in new:
    for l in k :
        print(l,end=" ")
    print()

7.熊怪吃核桃

 

# 7 熊怪
s = 1543
d = 0
while s != 0 :
    if s == 1:
        d += 1
        s -= 1
    else:
        if s%2 == 0 :
            s = s//2
        else :
            s -= 1
            d += 1
            s = s//2
print(d)

8、三角求面积(只适用于这一道题)

 

# 8 三角面积
s = 8*8

a = (4*8)/2
b = (8*2)/2
c = (4*6)/2
t = s-a-b-c
print(t)

9加法变乘法

 

# 9 加法变乘法
sum = 0
# q代表前面的乘号的靠左的乘数
q = list()
# h代表后面的乘号的靠左的数
h = list()
for i in range(1,50) :
    for j in range (i+2,50):
        if 1225-2*i-2*j-2+i*(i+1)+j*(j+1) ==2015:
            q.append(i)
            h.append(j)
# 输出一个不等于10的前面的数字
for i in q:
    if i != 10 :
        print(i)
        break

10、瓶子盖换购

 

#10. 饮料换购
n = int(input())
sum = n
while n >= 3 :
    mid = n//3
    sum += mid
    if n%3 == 0:
        n = 0
    elif  n%3 ==1:
        n = 1
    else :
        n = 2
    n += mid
print(sum)

题目来源:原文链接:https://blog.csdn.net/Kinght_123/article/details/115082053

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值