文章内容是本人做洛谷题目的题解展示与个人思路(Python版)
本文只将题目列出未详细将每题要求和样例展示,仅作思路分享!!!
解题方法不唯一,具体内容请到洛谷官方网站。
洛谷 链接: https://www.luogu.com.cn/
B2002 Hello,World!
初识每一种语言的第一步,相信自己会变强!
题目描述
print('Hello,World!')
B2025 输出字符菱形
题目描述
用 * 构造一个对角线长 55 个字符,倾斜放置的菱形。
print(" *")
print(" ***")
print("*****")
print(" ***")
print(" *")
#注意各行空格符对齐
P1000 超级玛丽游戏
题目描述
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。
********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#…#…#.##…#…#.##…#…#.##------------------#
###########################################------------------#
#…#…#…##…#…#…##…#…#…#####################
########################################## #----------#
#…#…##…#…##…#…# #----------#
########################################## #----------#
#.#…#…#…##.#…#…#…##.#…#…#…# #----------#
########################################## ############
#还是print
print(" ####....#.")
print(" #..###.....##....")
print(" ###.......###### ### ###")
print(" ........... #...# #...#")
print(" ##*####### #.#.# #.#.#")
print(" ####*******###### #.#.# #.#.#")
print(" ...#***.****.*###.... #...# #...#")
print(" ....**********##..... ### ###")
print(" ....**** *****....")
print(" #### ####")
print(" ###### ######")
print("##############################################################")
print("#...#......#.##...#......#.##...#......#.##------------------#")
print("###########################################------------------#")
print("#..#....#....##..#....#....##..#....#....#####################")
print("########################################## #----------#")
print("#.....#......##.....#......##.....#......# #----------#")
print("########################################## #----------#")
print("#.#..#....#..##.#..#....#..##.#..#....#..# #----------#")
print("########################################## ############")
P1001 A+B Problem
题目描述
输入两个整数 a,b,输出它们的和
#.split()方法默认按空格将输入的字符串拆分成多个部分,返回一个列表。
a,b=input().split()
#由于 input() 返回的默认值是字符串类型,因此需要用 int() 将 a 和 b 转换成整数类型。
print(int(a)+int(b))
B2005 字符三角形
题目描述
给定一个字符,用它构造一个底边长 5 个字符,高 3 个字符的等腰字符三角形。
a=input() #输入一个字符
print(' ',a) #输出一个空格后接输入字符串
print('',3*a) #输出一个空字符串后接输入字符串*3
print(5*a) #输入五个字符串
P5703 【深基2.例5】苹果采购
题目描述
现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?
a,b=input().split() #输入两个整数
print(int(a)*int(b)) #将两数相乘得到采购数量
P5704 【深基2.例6】字母转换
题目描述
输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q
str=input()
print(str.upper()) #.upper()转换字符串中的小写字母为大写
P5705 【深基2.例7】数字反转
题目描述
输入一个不小于 100且小于 1000,同时包括小数点后一位的一个浮点数。
例如 123.4,要求把这个数字翻转过来,变成4.321 并输出。
a=list(input()) #将输入的字符串转化为字符列表
for i in range(5): #循环五次
print(a[4-i],end='') #逆序打印列表中的元素,end=''保证不换行
P5706 【深基2.例8】再分肥宅水
题目描述
现在有 t毫升肥宅快乐水,要均分给 n 名同学。每名同学需要 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 33位),以及一共需要多少个杯子。
t,n=input().split() #以空格分开输入两个字符
t = float(t) #浮点型
n = int(n)
if n >= 0: #按题目正整数
fen = t / n #均分饮料
num = 2*n #求需要多少杯子
print(f"{fen:.3f}\n{num}") #将饮料毫升数保留三位小数,\n换行
P5708 【深基2.习2】三角形面积
题目描述
一个三角形的三边长分别是 a、b、c,那么它的面积为 p(p−a)(p−b)(p−c)
,其中 p=12(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 11 位小数。
import math #调用math函数
a,b,c = input().split() #以空格分开输入三个数字
a = float(a)
b = float(b)
c = float(c)
p = 1/2*(a+b+c) #求p
S = math.sqrt(p*(p-a)*(p-b)*(p-c)) #利用.sqrt求面积
print(f"{S:.1f}") #保留一位小数
P5707 【深基2.例12】上学迟到
题目描述
学校和 yyy 的家之间的距离为 ss 米,而 yyy 以 vv 米每分钟的速度匀速走向学校。
在上学的路上,yyy 还要额外花费 1010 分钟的时间进行垃圾分类。
学校要求必须在上午 8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。
由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
这道题有些难度需要好好理解
#输入距离与速度
s,v = input().split()
s=int(s)
v=int(v)
#求出在路上的时间与垃圾分类时间
all_minute = s//v +10
#判断路上花费时间是否为整数,如果求余不为整数则需要加1
n = s%v
if n!= 0:
all_minute += 1
#计算小时和剩余的分钟数
hour= 8-all_minute/60 #计算总分钟数转换成小时数
last_hour= 8-all_minute//60 #获取小时数的整数部分
#如果小于零。加上24小时调整
if hour<0:
last_hour=24+last_hour
#计算剩余分钟
minute=all_minute-(all_minute//60)*60
#输出格式化时间
if minute == 0:
print(last_hour,":""00") #如果分钟数为0,则直接打印小时数和00
else:
print('%02d'%(last_hour-1),end='')#小时保留两位
print(":",end="")
print('%02d' % (60 - minute))
B2029 大象喝水
题目描述
一只大象口渴了,要喝 20 升水才能解渴,但现在只有一个深 h厘米,底面半径为 r厘米的小圆桶 (h 和 r 都是整数)。问大象至少要喝多少桶水才会解渴。
#输入高度和半径
h, r = input().split()
h=int(h)
r=int(r)
p=3.14
# 求圆桶的体积
tool=(h * r**2 * p)
water = 20000 #转换单位
V = water//tool #求需要喝多少桶
if water%tool != 0: #如果不够整除加一
V+=1
V=int(V)
print(f"{V}")
P1425 小鱼的游泳时间
题目描述
伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。
这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 24小时制计算),它发现自己从 a时 b 分一直游泳到当天的 c 时 d 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?
小鱼游的好辛苦呀,你可不要算错了哦
#输入时间
a,b,c,d = input().split()
a = int(a)
b = int(b)
c = int(c)
d = int(d)
#按题目要求进行判断
if 0<=a<=24 and 0<=c<=24 and 0<=b<=60 and 0<=d<=60 and a<=c:
x=c-a
y=d-b
#如果分钟数不够减向小时借位
if y<0:
x-=1
y+=60
print(f"{x} {y}")
P1421 小玉买文具
题目描述
班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是 1 元 9 角,而班主任给小玉的钱是 a 元 b 角,小玉想知道,她最多能买多少只签字笔呢。
#输入元和角
a,b=input().split()
a=int(a)
b=int(b)
#求总共有多少角
c=a*10
sum=c+b
#求可以买多少签字笔
num=sum//19
print(f"{num}")
P3954 [NOIP2017 普及组] 成绩
题目描述
牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:
总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%
总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%
牛牛想知道,这门课程自己最终能得到多少分。
#输入三份成绩
A,B,C=input().split()
A=int(A)
B=int(B)
C=int(C)
#判断条件
if 0<=A<=100 and 0<=B<=100 and 0<=C<=100:
#算出总成绩
sum=A*0.2+B*0.3+C*0.5
sum=int(sum)
print(f"{sum}")
后续题单在之后会陆续更新,请耐心等待~