【Python入门】洛谷题单 入门1:顺序结构

P5704

【深基2.例6】字母转换

输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。

x = input().strip()
print(x.upper())

P5705

​​​​​​【深基2.例7】数字反转

输入一个不小于 100 且小于 1000,同时包括小数点后一位的一个浮点数,例如 123.4 ,要求把这个数字翻转过来,变成 4.321 并输出。

# 读取输入并去除空白字符
num = input().strip()

# 将字符串反转
reversed_num = num[::-1]

# 输出反转后的字符串
print(reversed_num)

P5706

【深基2.例8】再分肥宅水

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

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

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

# 读取输入
t, n = map(float, input().split())
n = int(n)  # 将 n 转换为整数

# 计算每名同学获得的饮料量
per_student = t / n

# 计算总共需要的杯子数量
total_cups = 2 * n

# 输出结果,保留 3 位小数
print(f"{per_student:.3f}")
print(total_cups)

P5708

【深基2.习2】三角形面积

一个三角形的三边长分别是 a、b、c,那么它的面积为 p(p−a)(p−b)(p−c)​,其中 p=21​(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。

# 读取输入的三个浮点数
a, b, c = map(float, input().split())

# 计算半周长
p = (a + b + c) / 2

# 计算面积(使用海伦公式)
area = (p * (p - a) * (p - b) * (p - c)) ** 0.5

# 输出面积,保留 1 位小数
print(f"{area:.1f}")

1. f-string 格式化

  • f-string 是一种字符串格式化方法。

  • 基本语法:f"{表达式:格式规范}"


2. f"{area:.1f}" 的详细说明

  • area 需要格式化的浮点数。

  • :.1f 格式规范,表示将浮点数格式化为保留 1 位小数。

    • 分隔表达式和格式规范。

    • .1 保留 1 位小数。

    • 表示浮点数格式。

P5707

【深基2.例12】上学迟到

题目描述

学校和 yyy 的家之间的距离为 s 米,而 yyy 以 v 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 10 分钟的时间进行垃圾分类。

学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。

输入格式

一行两个正整数 s,v,分别代表路程和速度。

输出格式

输出一个 24 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 0。

import math

# 读取输入
s, v = map(int, input().split())

# 计算行走时间(向上取整)
t_walk = math.ceil(s / v)

# 计算总时间
t_total = t_walk + 10

# 计算出发时间
# 到校时间是 8:00,即 480 分钟(8 * 60)
arrival_time = 8 * 60  # 8:00 的分钟数
departure_time = arrival_time - t_total

# 如果出发时间小于 0,说明需要提前一天出发
if departure_time < 0:
    departure_time += 24 * 60  # 加上一天的分钟数

# 将出发时间转换为 HH:MM 格式
hours = departure_time // 60
minutes = departure_time % 60

# 输出结果,确保两位数的格式
print(f"{hours:02d}:{minutes:02d}")

:02d

:02d是用于格式化整数的字符串格式化语法,作用是将整数格式化为 至少两位 的字符串,不足两位时在前面补零。


1. 语法

  • 分隔字段名和格式规范。

  • 填充字符,表示用 0 填充不足的位数。

  • 最小宽度,表示输出的字符串至少占 2 个字符。

  • 表示整数格式。


2. 功能

  • 将整数格式化为至少两位的字符串。

  • 如果整数的位数不足两位,则在前面补零。

 B2029

大象喝水

题目描述

一只大象口渴了,要喝 20 升水才能解渴,但现在只有一个深 h 厘米,底面半径为 r 厘米的小圆桶 (h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。

Update:数据更新,这里我们近似地取圆周率 π=3.14。

输入格式

输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深 h 和底面半径 r,单位都是厘米。

输出格式

输出一行,包含一个整数,表示大象至少要喝水的桶数。

说明/提示

数据规模与约定

对于全部的测试点,保证 1≤h≤500,1≤r≤100。

import math
h,r = map(int,input().split())
v = 3.14*r*r*h
n = math.ceil(20000/v)
print(n)

math模块

math.ceil (x):向上取整

将一个浮点数 向上取整,返回大于或等于该浮点数的最小整数。

  • x:需要取整的浮点数。

  • 返回大于或等于 x 的最小整数math.floor(x)向下取整

  • 返回小于或等于 x 的最大整数。

import math
num = 3.14
result = math.floor(num)
print(result)  # 输出: 3

round(x):四舍五入

  • 返回最接近 x 的整数。

num = 3.6
result = round(num)
print(result)  # 输出: 4

P1425

小鱼的游泳时间

题目描述

伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。

这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 24 小时制计算),它发现自己从 a 时 b 分一直游泳到当天的 c 时 d 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?

小鱼游的好辛苦呀,你可不要算错了哦。

输入格式

一行内输入四个整数,以空格隔开,分别表示题目中的 a,b,c,d。

输出格式

一行内输出两个整数 e 和 f,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示分钟的整数 f 应该小于 60。

a,b,c,d = map(int,input().split())
begin = 60*a+b
end = 60*c+d
t = end-begin
e = t//60
f = t%60
print(f"{e} {f}")

P1421

小玉买文具

题目描述

班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是 1 元 9 角,而班主任给小玉的钱是 a 元 b 角,小玉想知道,她最多能买多少只签字笔呢。

输入格式

输入只有一行两个整数,分别表示 a 和 b。

输出格式

输出一行一个整数,表示小玉最多能买多少只签字笔。

a,b = map(int,input().split())
money = 10*a+b
pen = 19
print(money//pen)

P3954

[NOIP 2017 普及组] 成绩

题目描述

牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:

总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%

牛牛想知道,这门课程自己最终能得到多少分。

输入格式

三个非负整数 A,B,C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是 100 分。

输出格式

一个整数,即牛牛这门课程的总成绩,满分也是 100 分。

a,b,c = map(float,input().split())
gpa = int(0.2*a+0.3*b+0.5*c)
print(gpa)

### 关于洛谷平台上的“大象喝水”问 此问是典型的编程入门目之一,主要考察学生对于输入输出以及基本运算的理解。以下是针对该问的详细解析。 #### 问分析 给定两个正整数 `n` 和 `m`,分别代表大象所需的水量(位:升)和水桶容量(位:升)。目标是计算出最少需要多少个这样的水桶才能满足大象的需求。 核心逻辑在于向上取整操作,即如果剩余水量不足以填满一整个水桶,则仍需额外一个水桶来完成供水需求[^1]。 #### Python实现方案 Python 提供了一个内置函数 `round()` 可用于四舍五入处理数值数据[^3];然而,在本中更推荐使用数学库中的 `ceil()` 函数来进行精确的上取整操作: ```python import math # 输入读取 n, m = map(int, input().split()) # 计算所需水桶数量并打印结果 buckets_needed = math.ceil(n / m) print(buckets_needed) ``` 上述代码片段首先导入了标准库模块 `math` 来获取其内部定义的方法 `ceil()` ,随后通过调用它实现了对除法商值的小数部分做适当调整以达成最终答案的要求。 #### C++ 实现方案 同样地,在C++语言环境下也可以借助 STL(Standard Template Library) 中的功能完成同样的任务: ```cpp #include <iostream> #include <cmath> // 引入 cmath 库以便访问 ceil() 方法 using namespace std; int main(){ double n,m; cin>>n>>m; int bucketsNeeded = ceil(n/m); cout<<bucketsNeeded<<endl; return 0; } ``` 这里我们选择了浮点型变量存储初始输入值从而避免潜在的数据丢失风险,并利用 `<cmath>` 头文件里的 `ceil(double)` 完成必要的转换过程。 #### 注意事项 - 当前假设所有测试案例均符合实际物理意义下的合理范围,因此无需考虑极端情况如负数或者零作为合法输入的可能性。 - 对于初学者而言理解如何正确运用各种类型的变量及其相互之间可能产生的影响是非常重要的知识点之一[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值