• 洛谷基础题练习4


    1. 再分肥宅水

    题目描述

    现在有 t(0≤ t ≤10000 且小数点后不超过 3 位) 毫升肥宅快乐水,要均分给 n(1 ≤ n ≤ 1000) 名同学。每名同学需要 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子。

    输入格式

    输入一个实数 t 和一个正整数 n,使用空格隔开。

    输出格式

    输出两行。

    第一行输出一个三位小数,表示可以获得多少毫升饮料。第二行输出一个正整数,表示一共需要多少个杯子。

    样例输入

    500.0 3
    
    • 1

    样例输出

    166.667
    6
    
    • 1
    • 2
    t, n = map(float, input().strip().split())
    n = int(n)
    drink = t / n  # 每人可分到的饮料
    print('{:.3f}'.format(drink))
    print(n * 2)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2. 三角形面积

    题目描述

    一个三角形的三边长分别是 a、b、c,那么它的面积为
    p ( p − a ) ( p − b ) ( p − c ) ,其中 p = 1 2 ( a + b + c ) \sqrt{p(p-a)(p-b)(p-c)},其中 p=\frac{1}{2}(a+b+c) p(pa)(pb)(pc) ,其中p=21(a+b+c)
    输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。(数据保证能构成三角形,0 ≤ a,b,c ≤ 1000,每个边长输入时不超过 2 位小数。)

    输入格式

    第一行输入三个实数 a,b,c,以空格隔开。

    输出格式

    输出一个实数,表示三角形面积。精确到小数点后 1 位。

    样例输入

    3 4 5
    
    • 1

    样例输出

    6.0
    
    • 1

    题目分析
    由 p = 1 2 ( a + b + c ) ,可得: p − a = 1 2 ( b + c − a ) , p − b = 1 2 ( a + c − b ) , p − c = 1 2 ( a + b − c ) , 代入面积公式中,可得: 面积 a r e a = 1 2 ( a + b + c ) 1 2 ( b + c − a ) 1 2 ( a + c − b ) 1 2 ( a + b − c ) = ( a + b + c ) ( b + c − a ) ( a + c − b ) ( a + b − c ) 4 由p=\frac{1}{2}(a+b+c),可得:\\ p - a = \frac{1}{2}(b+c-a),\\ p - b = \frac{1}{2}(a+c-b),\\ p - c = \frac{1}{2}(a+b-c),\\ 代入面积公式中,可得:\\面积area = \sqrt{\frac{1}{2}(a+b+c)\frac{1}{2}(b+c-a)\frac{1}{2}(a+c-b)\frac{1}{2}(a+b-c)}\\ = \frac{\sqrt{(a+b+c)(b+c-a)(a+c-b)(a+b-c)}}{4} p=21(a+b+c),可得:pa=21(b+ca)pb=21(a+cb)pc=21(a+bc)代入面积公式中,可得:面积area=21(a+b+c)21(b+ca)21(a+cb)21(a+bc) =4(a+b+c)(b+ca)(a+cb)(a+bc)

    import math
    
    a, b, c = map(float, input().strip().split())
    num1 = a + b + c
    num2 = b + c - a
    num3 = a + c - b
    num4 = a + b - c
    area = math.sqrt(num1 * num2 * num3 * num4) / 4
    print('%.1f' % area)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3. 数的性质

    题目描述

    一些整数可能拥有以下的性质:

    • 性质 1:是偶数;
    • 性质 2:大于 4 且不大于 12。

    小 A 喜欢这两个性质同时成立的整数;Uim 喜欢这至少符合其中一种性质的整数;八尾勇喜欢刚好有符合其中一个性质的整数;正妹喜欢不符合这两个性质的整数。现在给出一个整数 x,请问他们是否喜欢这个整数?

    输入格式

    输入一个整数 x(0 ≤ x ≤ 1000)

    输出格式

    输出这 4 个人是否喜欢这个数字,如果喜欢则输出 1,否则输出 0,用空格分隔。输出顺序为:小 A、Uim、八尾勇、正妹。

    样例输入

    12
    
    • 1

    样例输出

    1 1 0 0
    
    • 1
    x = int(input().strip())
    a = 0
    b = 0
    c = 0
    d = 0
    if x % 2 == 0 and 4 < x <= 12:
        a = 1
    if x % 2 == 0 or 4 < x <= 12:
        b = 1
    if (x % 2 == 0 and x <= 4 or x > 12) or (x % 2 != 0 and 4 < x <= 12):
        c = 1
    if x % 2 != 0 and x <= 4 or x > 12:
        d = 1
    print(a, b, c, d)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    4. 月份天数

    题目描述

    输入年份和月份,输出这一年的这一月有多少天。需要考虑闰年

    输入格式

    输入两个正整数,分别表示年份 y (1583 ≤ y ≤ 2020)和月数 m(1 ≤ m ≤ 12),以空格隔开。

    输出格式

    输出一行一个正整数,表示这个月有多少天。

    样例输入 #1

    1926 8
    
    • 1

    样例输出 #1

    31
    
    • 1

    样例输入 #2

    2000 2
    
    • 1

    样例输出 #2

    29
    
    • 1
    y, m = map(int, input().strip().split())
    if 1583 <= y <= 2020 and 1 <= m <= 12:
        if m in [1, 3, 5, 7, 8, 10, 12]:
            print(31)
        elif m in [4, 6, 9, 11]:
            print(30)
        else:
            if (y % 400 == 0 or y % 4 == 0 and y % 100 != 0) and m == 2:
                print(29)
            else:
                print(28)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5. 找最小值

    题目描述

    给出 n (n≤100)和 n 个整数 ai(0 ≤ *a~i ~*≤ 1000),求这 n 个整数中最小值是什么。

    输入格式

    第一行输入一个正整数 n,表示数字个数。

    第二行输入 n 个非负整数,以空格隔开。

    输出格式

    输出一个非负整数,表示这 n 个非负整数中的最小值。

    样例输入

    8
    1 9 2 6 0 8 1 7
    
    • 1
    • 2

    样例输出

    0
    
    • 1
    n = int(input().strip())
    numbers = [int(i) for i in input().strip().split()]
    print(sorted(numbers)[0])
    
    • 1
    • 2
    • 3

    6. 求极差

    题目描述

    给出 n(1≤n≤100) 和 n 个整数 ai(0≤*ai*≤1000),求这 n 个整数中的极差是什么。极差的意思是一组数中的最大值减去最小值的差。

    输入格式

    第一行输入一个正整数 n,表示整数个数。

    第二行输入 n 个整数,以空格隔开。

    输出格式

    输出一个整数,表示这 n 个整数的极差。

    样例输入

    6
    1 1 4 5 1 4
    
    • 1
    • 2

    样例输出

    4
    
    • 1
    n = int(input().strip())
    numbers = [int(i) for i in input().strip().split()]
    numbers = sorted(numbers)
    min = numbers[0]
    max = numbers[-1]
    print(max - min)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    MongoDB 数组查询($elemMatch)、更新操作(占位符$)详解
    【干货】前后端分离怎么部署?
    C++基础知识(十四)--- vector容器
    Zabbix监控系统与部署添加 zabbix 客户端主机
    【计算机视觉 | 目标检测】目标检测常用数据集及其介绍(十二)
    VS Code中PlatformIO IDE的安装并开发Arduino
    【十分钟】manim安装 2022
    一文搞懂数据仓库分层模型
    人工智能知识全面讲解:生成对抗网络的应用
    Docker快速部署springboot项目
  • 原文地址:https://blog.csdn.net/username666/article/details/127131506