蓝桥杯python基础练习

A+B问题

A,B=map(int,input().split());
print(A+B);

数列从小到大排序

n = int(input())
arr = list(map(int, input().split()))

arr.sort()
for i in range(n):
      print(arr[i], end= '  ')

十六进制转八进制

n=int(input())
li=[]
for i in range(n):
    if n<=10:
        s=input()#所有输入默认字符串
        if len(s)<=100000:
            res_1=int(s,16)#这里的int(s,16)代表把16进制的s转化成10进制
            res_2=oct(res_1)#这里的oct代表把一个整数转化为八进制
            li.append(res_2[2:])#这里的[2:]是代表结果从第三位开始取
for i in li:
    print(i,end='\n')

十六进制转十进制

str1=input()
num=int(str1,16)#int(str1,16)表示把一个16进制的数转化为10进制
print(num)

十进制转16进制

n=int(input())
if n>=0 and n<=2147483647:
    s=hex(n).upper()#.upper()将字符串中的小写字符自动转化为大写
    print(s[2:])
'''这里拓展一下字符串大小写转化的方法:
lower()方法可将字符串中的所有大写字母变为小写
而capwords并不是字符串本身的方法,而是string模块中的函数,
使用capwords函数将一个字符串中的所有独立的英文单词的首字母都转换为大写。
'''
'''
import string
s='CASsds sads'
print(string.capwords(s))
'''

特殊回文数

n=int(input())
for i in range(10000,1000000):
    a=str(i)
    b=0
    if a==a[::-1]:#这里的a[::-1]表示把字符串a倒序
       for j in a:
           b+=int(j)
       if b==n:
           print(a)

回文数

for i in range(1000,10000):
    if str(i)==str(i)[::-1]:#str(i)[::-1]作用是将字符串倒置
        print(i)

特殊的数字

for i in range(100,1000):
    a=list(str(i))
    if i==pow(int(a[0]),3)+pow(int(a[1]),3)+pow(int(a[2]),3):
        print(i)
'''
pow(x,y)表示求解x的y次幂
pow(x,y,z)表示求解x的y次幂对z取余后的结果
'''

杨辉三角

n=int(input())
nums=[[0]*n for i in range(n)]#初始化一个n*n的零阵
for i in range(n):
    for j in range(n):
        if j==0:
            nums[i][j]=1
        else:
            nums[i][j]=nums[i-1][j-1]+nums[i-1][j]
        if nums[i][j]!=0:
            print(nums[i][j],end=' ')
    print()     

查找整数

n=int(input())
nums=list(map(int,input().split()))
a=int(input())
count=0#引入计数器
for i in range(len(nums)):
    if a==nums[i]:
        print(i+1)
        count+=1
        break
if count==0:
    print(-1)
    

数列特征

a=int(input())
b=input().split()
nums=[int(i) for i in b]
print(max(nums))#使用python内置函数很方便,=.=
print(min(nums))
print(sum(nums))

字母图形

m,n = map(int,input().split())
for i in range(m):
    for j in range(n):
        print(chr(65+abs(i-j)),end = "")
    print("")

01字串

for i in range(32):
    print(f'{i:0>5b}')

闰年判断

n = int(input())
if n % 4:
    print('no')
else:
    print('yes')

Fibonacci数列

n = int(input())

record = [1, 1]
for i in range(2, n):
    temp = (record[0]+record[1]) % 10007
    record[0] = record[1]
    record[1] = temp
print(record[1])

圆的面积


import math as m

r = float(input())
s = m.pi * r**2
print(f'{s:.7f}')

序列求和

n = int(input())
result = int((1+n)*n/2)
print(result)

阶乘计算

import math as m
print(m.factorial(int(input())))

高精度加法

num1 = int(input())
num2 = int(input())
print(num1+num2)

Huffuman树

n = int(input())
num_list = list(map(int, input().split()))

result = 0
for i in range(n-1):
    min1 = min(num_list)
    num_list.remove(min1)
    min2 = min(num_list)
    num_list.remove(min2)
    min_sum = min1 + min2
    result += min_sum
    num_list.append(min_sum)

print(result)

2n皇后问题

from collections import defaultdict

n = int(input())
board = []
for i in range(n):
    board.append(input().split())
col1 = defaultdict(bool)
dia11 = defaultdict(bool)
dia21 = defaultdict(bool)
col2 = defaultdict(bool)
dia12 = defaultdict(bool)
dia22 = defaultdict(bool)
count = 0


def dfs2(index):
    global count
    if index == n:
        count += 1
        return

    for j in range(n):
        if not col2[j] and not dia12[index + j] and not dia22[index - j] \
                and board[index][j] == "1":
            col2[j] = True
            dia12[index + j] = True
            dia22[index - j] = True
            board[index][j] = "0"
            dfs2(index + 1)
            col2[j] = False
            dia12[index + j] = False
            dia22[index - j] = False
            board[index][j] = "1"

    return 0


def dfs1(index):
    if n <= 0:
        return 0
    if index == n:
        dfs2(0)
        return

    for j in range(n):
        if not col1[j] and not dia11[index + j] and not dia21[index - j] \
                and board[index][j] == "1":
            col1[j] = True
            dia11[index + j] = True
            dia21[index - j] = True
            board[index][j] = "0"
            dfs1(index + 1)
            col1[j] = False
            dia11[index + j] = False
            dia21[index - j] = False
            board[index][j] = "1"

    return 0


dfs1(0)
print(count)

报时助手

def translator(num):
    my_dict = {0: "zero",
               1: "one",
               2: "two",
               3: "three",
               4: "four",
               5: "five",
               6: "six",
               7: "seven",
               8: "eight",
               9: "nine",
               10: "ten",
               11: "eleven",
               12: "twelve",
               13: "thirteen",
               14: "fourteen",
               15: "fifteen",
               16: "sixteen",
               17: "seventeen",
               18: "eighteen",
               19: "nineteen",
               20: "twenty",
               30: "thirty",
               40: "forty",
               50: "fifty"}
    if num in my_dict.keys():
        return my_dict[num]
    else:
        num1, num2 = divmod(num, 10)
        return my_dict[num1*10] + ' ' + my_dict[num2]


time = list(map(int, input().split()))
h, m = time[0], time[1]
if m == 0:
    print(translator(h) + " o'clock")
else:
    print(translator(h) + " " + translator(m))

回型取数

def my_print(my_mat):
    _m = len(my_mat)
    _n = len(my_mat[0])
    max_print = _m * _n
    num = 0
    for l in range(_m):
        num += 1
        print(my_mat[l][0], end=' ')
    for b in range(1, _n):
        num += 1
        print(my_mat[-1][b], end=' ')
    for r in list(range(_m - 1))[::-1]:
        num += 1
        if num > max_print:
            return 1
        print(my_mat[r][-1], end=' ')
    for t in list(range(1, _n - 1))[::-1]:
        num += 1
        if num > max_print:
            return 1
        print(my_mat[0][t], end=' ')
    if _m >= 3 and _n >= 3:
        new_list = []
        for i in range(1, _m-1):
            new_list.append(my_mat[i][1:_n-1])
        my_print(new_list)
    else:
        return 1


m, n = map(int, input().split())
list0 = []
for i in range(m):
    list0.append(list(map(int, input().split())))
my_print(list0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值