题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交

题目 1471:矩形面积交

蓝桥杯刷题群已成立,微信后台回复【蓝桥杯】,即可进入。
如果加入了之前的社群不需要重复加入。

时间限制: 1Sec 内存限制: 128MB

1. 题目描述

平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

2. 输入

输入仅包含两行,每行描述一个矩形。

在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。

3. 输出

输出仅包含一个实数,为交的面积,保留到小数后两位。

4. 样例输入

1 1 3 3 
2 2 4 4 

5. 样例输出

1.00


6. 解决方案

思路:

  • 要对矩形做规范化处理。即左上角的坐标要小于右下角的坐标。
  • 根据不同情况分别确定相交矩形左右上下,四条边的xy坐标。
  • 根据坐标确定矩形的长与宽。
  • 求出矩形的面积。

「Python语言」

while True:
    try:
        a = list(map(float, input().strip().split()))
        b = list(map(float, input().strip().split()))
        
        # 对矩形做规范化处理
        a = [min(a[0], a[2]), min(a[1], a[3]), max(a[0], a[2]), max(a[1], a[3])]
        b = [min(b[0], b[2]), min(b[1], b[3]), max(b[0], b[2]), max(b[1], b[3])]
        
        # 确定每条边的坐标
        xl = max(a[0], b[0])
        xr = min(a[2], b[2])
        yup = max(a[1], b[1])
        ydown = min(a[3], b[3])
        
        # 确定矩阵的长与宽
        w = xr - xl
        h = ydown - yup
        
        # 求出矩形的面积
        if w > 0 and h > 0:
            print("%.2f" % (w * h))
        else:
            print("0.00")
    except:
        break


知识点:条件语句

「1. if 语句」

if expression:
    expr_true_suite

  • if 语句的 expr_true_suite 代码块只有当条件表达式 expression 结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。
  • 单个 if 语句中的 expression 条件表达式可以通过布尔操作符 andornot 实现多重条件判断。

【例子】

if 2 > 1 and not 2 > 3:
    print('Correct Judgement!')

# Correct Judgement!

「2. if - else 语句」

if expression:
    expr_true_suite
else:
    expr_false_suite

  • Python 提供与 if 搭配使用的 else,如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码。

【例子】

temp = input("猜一猜小姐姐想的是哪个数字?")
# input 函数将接收的任何数据类型都默认为 str。
guess = int(temp) 
if guess == 666:
    print("你太了解小姐姐的心思了!")
    print("哼,猜对也没有奖励!")
else:
    print("猜错了,小姐姐现在心里想的是666!")
print("游戏结束,不玩儿啦!")

if语句支持嵌套,即在一个if语句中嵌入另一个if语句,从而构成不同层次的选择结构。

【例子】Python 使用缩进而不是大括号来标记代码块边界,因此要特别注意else的悬挂问题。

hi = 6
if hi > 2:
    if hi > 7:
        print('好棒!好棒!')
else:
    print('切~')

# 无输出

【例子】

temp = input("猜一猜小姐姐想的是哪个数字?")
guess = int(temp)
if guess > 8:
    print("大了,大了")
else:
    if guess == 8:
        print("你太了解小姐姐的心思了!")
        print("哼,猜对也没有奖励!")
    else:
        print("小了,小了")
print("游戏结束,不玩儿啦!")

「3. if - elif - else 语句」

if expression1:
    expr1_true_suite
elif expression2:
    expr2_true_suite
    .
    .
elif expressionN:
    exprN_true_suite
else:
    expr_false_suite

  • elif 语句即为 else if,用来检查多个表达式是否为真,并在为真时执行特定代码块中的代码。

【例子】

temp = input('请输入成绩:')
source = int(temp)
if 100 >= source >= 90:
    print('A')
elif 90 > source >= 80:
    print('B')
elif 80 > source >= 60:
    print('C')
elif 60 > source >= 0:
    print('D')
else:
    print('输入错误!')

「4. assert 关键词」

assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。

【例子】

my_list = ['lsgogroup']
my_list.pop(0)
assert len(my_list) > 0

# AssertionError

【例子】在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。

assert 3 > 7

# AssertionError


(0)

相关推荐

  • 一文讲解Python条件语句的使用方法

    Python条件语句是由执行一条或多条语句的结果(True或False)来决定要执行的代码块.Python程序语言指定true和非空(null)值均为true,0或null为false. Python ...

  • Python条件语句之关于input的使用

    因为条件语句比较简单,开始学习条件语句不需要很长时间的学习.所以在学习input()可以编写一些有趣的小程序,可以打发时间. 条件语句 条件语句时通过一条或者多条条件语句代码执行的结果是True还是F ...

  • if...else;elif使用

    else有两个特性. 第一,else需与if搭配使用,它无法独立出现.必须先有if,然后才能使用else. 第二,if与else成互斥关系,else是把if判断条件无法囊括的情况全部揽到了自己这里. ...

  • 算法创作|蓝桥杯真题分糖果问题解决方法

    问题描述有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子.一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数.反复 ...

  • 算法创作|2020蓝桥杯真题-跑步锻炼

    问题描述小蓝每天都锻炼身体.正常情况下,小蓝每天跑 1 千米.如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米.如果同时是周一或月初,小蓝也是跑 2 千米.小蓝跑步已经坚持了很长时间 ...

  • Python | 2020蓝桥杯真题-寻找2020

    问题描述小蓝有一个数字矩阵,里面只包含数字 0 和 2.小蓝很喜欢 2020,他想找到这个数字矩阵中有多少个 2020 .小蓝只关注三种构成 2020 的方式:· 同一行里面连续四个字符从左到右构成 ...

  • Python|蓝桥杯真题-单词分析

    问题描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常英文单词的长度.小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个 ...

  • Python|2020蓝桥杯真题-跑步训练

    引言蓝桥杯是国内始终领跑的人才培养选拔模式并获得行业深度认可的IT类科技竞赛.问题描述小明要做一个跑步训练.初始时,小明充满体力,体力值计为 10000.如果小明跑步,每分钟损耗600 的体力.如果小 ...

  • Python|2018蓝桥杯真题练习—哪天返回

    问题描述 小明被不明势力劫持.后莫名其妙被扔到x星站再无问津.小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文.他决定在x星战打工.好心的老板答应包食宿,第1天给他1元钱.并且,以后 ...

  • Python | 2018蓝桥杯真题练习—猴子分香蕉

    问题描述 5只猴子是好朋友,在海边的椰子树上睡着了.这期间,有商船把一大堆香蕉忘记在沙滩上离去.第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉.第2只猴子醒来,重新把 ...

  • ​LeetCode刷题实战223:矩形面积

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 题目 1470:【蓝桥杯】【入门题】【基础练习VIP】时间转换

    题目 1470:字符逆序 蓝桥杯刷题群已成立,微信后台回复[蓝桥杯],即可进入. 如果加入了之前的社群不需要重复加入. 时间限制: 1Sec 内存限制: 128MB 1. 题目描述 给定一个以秒为单位 ...