用Python做入门OJ题
2023-09-11 14:22:53 时间
很多时候,我们用自己常用的语言,可以实现很多很复杂的功能,但是如果用的是一门新学习的语言,那么能力往往就会大打折扣,这就需要我们多练习一些,从头学习。
这里的OJ题,以dot的为主,毕竟目前还是得先把握基础(感觉自己又回到了大一刚开始学习的时候),这里没有什么逻辑要想的,主要就是熟悉语言和一些小的函数。
# 突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,你的部队必须撤下独木桥。独木桥的长度为 LL,士兵们只能呆在坐标为整数的地方。所有士兵的速度都为 11,但一个士兵某一时刻来到了坐标为 00 或 L+1L+1 的位置,他就离开了独木桥。
# 每个士兵都有一个初始面对的方向,他们会以匀速朝着这个方向行走,中途不会自己改变方向。但是,如果两个士兵面对面相遇,他们无法彼此通过对方,于是就分别转身,继续行走。转身不需要任何的时间。
# 由于先前的愤怒,你已不能控制你的士兵。甚至,你连每个士兵初始面对的方向都不知道。因此,你想要知道你的部队最少需要多少时间就可能全部撤离独木桥。另外,总部也在安排阻拦敌人的进攻,因此你还需要知道你的部队最多需要多少时间才能全部撤离独木桥。
class Solution:
def __init__(self):
self.length=int(input())
self.enemy=int(input())
if self.enemy!=0:
where=input()
self.nums=[int(n) for n in where.split()]
def min_time(self):
max=0
if self.enemy==0:
return 0
for num in self.nums:
time=(self.length-num+1) if (self.length-num+1)<num else (num)
if time>max:
max=time
return max
def max_time(self):
max=0
if self.enemy==0:
return 0
for num in self.nums:
time=(self.length-num+1) if (self.length-num+1)>num else (num)
if time>max:
max=time
return max
a=Solution()
print(f"{a.min_time()} {a.max_time()}")
# 华氏度和摄氏度
a=float(input())
b=5*(a-32)/9
c="%.2f"%b
print("c="+c)
#三个数中的较小值
a,b,c=map(int,input().split())
if a>b:
max=a
else:
max=b
if max>c:
pass
else:
max=c
print(max)
#分段函数计算
a=int(input())
if a<1:
b=a
elif a>=1 and a<10:
b=2*a-1
else:
b=3*x-11
print(b)
# 给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
mark=int(input())
if mark>=90:
print("A")
elif mark<=89 and mark>=80:
print("B")
elif mark<=79 and mark>=70:
print("C")
elif mark<=69 and mark>=60:
print("D")
else:
print("E")
# 给出一个不多于5位的整数,要求 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123
a=input()
b=''
print(len(a))
for i in a:
b=f"{b} {i}"
print(b.lstrip())
print(a[::-1])
# 企业发放的奖金根据利润提成。利润低于或等于100000元的,奖金可提10%;
# 利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成 7.5%;
# 200000<I≤400000时,低于200000元部分仍按上述办法提成,(下同),高于200000元的部分按5%提成;
# 400000<I≤600000元时,高于400000元的部分按3%提成;
# 600000<I≤1000000时,高于600000元的部分按1.5%提成;
# I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。
l=int(input())
if l<=100000:
money=0.1*l
elif l<=200000:
money=10000+0.075*(l-100000)
elif l<=400000:
money=10000+7500+0.05*(l-200000)
elif l<=600000:
money=10000+7500+10000+0.03*(l-400000)
elif l<=1000000:
money=10000+7500+10000+6000+0.015*(l-600000)
else:
money=10000+7500+10000+6000+6000+0.01*(l-1000000)
print(int(money))
# 输入两个正整数m和n,求其最大公约数和最小公倍数。
m,n=map(int,input().split())
a=m
b=n
while m!=n:
if m>n:
m=m-n
if m<n:
n=n-m
if m==n:
break
print(m)
print(int(a/m*b))
# 输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。
a=input()
b=0
c=0
d=0
e=0
for n in a:
# 判断是否是字母
if n.isalpha():
b+=1
# 判断是否是数字
elif n.isdigit():
c+=1
elif n==' ':
d+=1
else:
e+=1
print(f"{b} {c} {d} {e}")
# 求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。
a=int(input())
sum=0
i=0
while True:
sum+=a*2*(10**i)
a-=1
i+=1
if a==0:
break
print(sum)
# 求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)。
def jiecheng(n):
sum=1
while n>0:
sum*=n
n-=1
return sum
n=int(input())
output=0
while True:
output+=jiecheng(n)
n-=1
if n==0:
break
print(output)
相关文章
- python 保存图片_用Python从视频中提取每一帧的图片
- PCA主成分分析Python实现
- 零基础教你快速入门Python怎么学python入门?python新手学习路线
- python能做什么软件?Python到底能干嘛,一文看懂
- 请问Python零基础学会可以做哪些?python是不是很难学?
- python线程执行带有参数的任务(args、kwargs)
- 【Python入门教程】教你如何10分钟入门Python!(超详细)
- Python分享:python爬虫可以用来做什么?
- 零基础自学Python资源大全,小白变大牛只差这一步
- 零基础学python 怎么学
- 《python 与数据挖掘 》一 第2章 Python基础入门
- Linux 平台下 Python 脚本编程入门(一)
- 【Python】Docx解析
- 《树莓派Python编程入门与实战》——3.1 探索Python
- 百行代码入门Python - Chapter2
- 《Python入门经典》——1.3 在Mac OS上安装Python
- 《Python数据分析》一第1章 Python程序库入门1.1 本书用到的软件
- 比Python快得吓人,PyPy极简入门,Python进阶必备
- 如何通过优化 Python 中的 GPU 使用率将视频处理速度提高 5 倍(教程含源码)
- Python爬虫教程之五大重要库入门使用教程Scrapy、Requests、Urllib、Beautiful Soup、Selenium(教程含源码)
- Python基础入门-文件读写
- 手把手带你入门Python爬虫(二、爬虫预备知识)
- 【Python分布式服务框架】python实现gRPC服务
- python odoo pdf文件 位置获取
- 【Python】python 库分类大全
- 教外谈(2):C/C++结合python实现阿里云盘数据同步
- Python入门学习笔记第八章——函数~~~