【打卡-蓝桥杯】Day 6 ----ASCII chr(ord(‘A‘))

题目1:基础练习 矩形面积交

在这里插入图片描述

解题思路:

找相交处,矩形的点坐标

代码

list1 = list(map(float, input().split()))
list2 = list(map(float, input().split()))
x1 = max(min(list1[0], list1[2]), min(list2[0], list2[2]))
x2 = min(max(list1[0], list1[2]), max(list2[0], list2[2]))
y1 = max(min(list1[1], list1[3]), min(list2[1], list2[3]))
y2 = min(max(list1[1], list1[3]), max(list2[1], list2[3]))

if x2 > x1 and y2 > y1:
    area = (x2-x1)*(y2-y1)
    print('{:.2f}'.format(area))
else:
    print('%.2f' % 0.00)

题目2:基础练习 数的读法

在这里插入图片描述

解题思路:

太痛苦了,就是各种情况 进行不同的处理

代码

n = input()

pin_yin = {'0': 'ling', '1': 'yi', '2': 'er', '3': 'san', '4': 'si', '5': 'wu',
           '6': 'liu', '7': 'qi', '8': 'ba', '9': 'jiu'}
pin_yin_2 = {0: '', 1: '', 2: 'shi', 3: 'bai', 4: 'qian', 5: 'wan', 6: 'shi',
             7: 'bai', 8: 'qian', 9: 'yi', 10: 'shi'}

n = n + ' '  # 后面判断 会越界
l = len(n) - 1
for i in range(l):
    j = int(n[i])
    if j != 0:  # 不为0
        # 处理 1
        # 十、十万、十亿 位置且位于开的头的 1 不读
        if j == 1 and (l - i == 2 or l - i == 6 or l - i == 10):
            if i != 0:  # 第一个1不输出1, 若不添加此条件,12会读出 yi shi er
                print(pin_yin['1'], end=' ')
            print(pin_yin_2[2], end=' ')
            continue
        print(pin_yin[n[i]], end=' ')
        print(pin_yin_2[l - i], end=' ')
    else:
        if l - i == 5 or l - i == 9:  # 万 和 忆 位
            print(pin_yin_2[l - i], end=' ')
        if n[i + 1] == '0' or i == l - 1:  # 后面仍有 0 或者 最后一位
            continue  # 不读
        print(pin_yin['0'], end=' ')  # 读 0

题目3:基础练习 Sine之舞

在这里插入图片描述

解题思路:

没意思,这题找规律(不是自己敲的代码)

代码


def Sine_An(n, k):
    if n == k: # 边界
        return
    print('sin(%d' % (n+1), end='')

    if n + 1 != k: # 当n小于输入的值,即后面还有式子
        if n % 2 == 1: # 如果n是奇数 输出+号
            print('+', end='')
        else:         # 如果n是偶数 输出-号
            print('-', end='')
    else:          # 如果后面没有式子输出右括号
        print(')', end='')

    Sine_An(n+1, k)

def Sine_Sn(n):
    k = t = 1
    if n == 0:
        return
    for i in range(n-1): # 补全左边括号
        print('(', end='')
    while n != 0:
        Sine_An(0, k)
        for i in range(t - 1):
            print(')', end='')  # 补全An的右括号
        print('+%d' % n, end='')
        if n != 1:
            print(')', end='')

        k += 1
        t += 1
        n -= 1

n = int(input())
Sine_Sn(n)

题目4:基础练习 FJ的字符串

在这里插入图片描述

解题思路:

ASCII 计算,找规律对称后,中间加 ABCD…

代码

N = int(input())
str = ''
for i in range(1, N+1):
    str = str + chr(i+64) + str
print(str)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值