进阶版Python编程题(2)洛谷(小学数学N合一)

文章介绍了多个编程问题,涉及基础数学运算、几何形状计算、金融交易、几何公式应用、追及问题、字母排序以及数学谜题求解,展示了编程在处理实际问题中的实用性。
摘要由CSDN通过智能技术生成

问题 1

请输出 I love Luogu!

问题 2

这里有 10 个苹果,小 A 拿走了 2 个,Uim 拿走了 4 个,小 B 拿走剩下的所有的苹果。我们想知道:

  1. 小 A 和 Uim 两个人一共拿走多少苹果?
  2. 小 B 能拿走多少苹果?

现在需要编写一个程序,输出两个数字作为答案,中间使用空格分开。

问题 3

现在有 14 个苹果。要均分给 4 名同学,分不掉的苹果放回冰箱。请问:

  1. 每位同学能分得几个苹果?

  2. 一共分出去多少苹果?

  3. 把几个苹果放回冰箱?

    现在需要编写一个程序,输出三个数字作为答案,每个数字一行。

问题 4

现在有 500 毫升的肥宅快乐水,要均分给 3 名同学,每位同学可以分到多少毫升?请输出一个数字作为输出。保留 6 位有效数字,且不使用科学计数法。

问题 5

甲列火车长 260 米,每秒行 12 米;乙列火车长 220 米,每秒行 20 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。

问题 6

一个长方形长宽分别是 6 cm、9 cm,求它的对角线长度(cm)。

问题 7

Uim 银行账户里面有 100 元。经过了下面的操作:

  1. 往里面存了 10 元;

  2. 购物花掉了 20 元;

  3. 把里面的钱全部取出。

    请在每次操作后输出账户余额,并使用换行符隔开。

问题 8

当半径为 r=5,请输出圆的周长、面积和球体积。取 π=3.141593。每行一个数字。

问题 9

一只小猴买了若干个桃子。第一天他刚好吃了这些桃子的一半,又贪嘴多吃了一个;第二天他也刚好吃了剩余桃子的一半,贪嘴多吃了一个;第三天他又刚好吃了剩下的桃子的一半,并贪嘴多吃了一个。第四天起来一看,发现桃子只剩下一个了。请问小猴买了几个桃子?

问题 10

洛谷的评测任务是单位时间内均匀增加的。8 台评测机 30 分钟可以刚好把评测队列中的程序评测完毕,10 台评测机 6 分钟可以刚好把评测队列中的程序评测完毕,请问几台评测机可以在 10 分钟时刚好把评测队列中的程序评测完毕?

问题 11

小 A 跑步速度5 m/s,小 B 跑步速度8 m/s,小 B 在小 A 后面 100 m,他们同时起跑,请问需要多长时间小 B 可以追上小 A?输出一个数字表示答案

问题 12

大家都知道有 26 个英文字母,其中 A 是第一个字母。现在请编程求出:

  1. M 是字母表中的第几个字母?
  2. 第 18 个字母是什么?

输出一个数字和一个字母,使用换行隔开。

问题 13

小 A 有两块球形橡皮泥,一个半径是 4,一个半径是 10。他想把这两块橡皮泥揉在一起,然后塑造成一个正方体,请问这个正方体的棱长是多少?如果结果不是整数,则舍去小数点之后的数字。取 π=3.141593。

问题 14

根据咕咕网校的预测,当课程定价为 110 元时,会有 10 人报名。如果课程价格每降低 1 元,就会多 11名报名者(反之亦然)。如果希望总共能收到 3500 元学费的话,那么应该定价多少呢?已知本题有两个答案符合要求,则取较小的那一个。如果这个答案不是整数,则需四舍五入精确到整数。

输入格式

输入一个正整数,表示第几个问题。

代码如下:

n=int(input())
if n==1:
    print('I love Luogu!')#第一题
if n==2:
    A,B,uim=2,(10-4-2),4#第二题
    print(int(A+uim),int(B))
if n==3:
    print(int(14//4))
    print(14-(14%4))
    print(14%4)
elif n==4:
    print("{:.3f}".format(500/3))
elif n==5:
    print((260+220)//(12+20))
elif n==6:
    print('%.4f'%(6*6+9*9)**0.5)
elif n==7:
    print("""110
90
0""")
elif n==8:
    pi=3.141593
    r=5
    print("%.4f"%(2*pi*r))
    print("%.4f"%(pi*r*r))
    print("%.3f"%((4*pi*(r**3))/3))
if n==9:
    def func(a):
        if a==1:
            return 1
        else:
            return (func(a-1)+1) * 2
    print(func(4))
if n==10:
    y=(8*30-6*10)/24#每分钟增加量
    x=10*6-6*y#初始任务量
    print(int((x+10*y)/10))
elif n==11:
    print("%.4f"%(100/(8-5)))
if n==12:
    print(ord("M")-64)
    print(chr(64+18))
if n==13:
    p=3.141593
    print(int(pow((4*p*(4**3+10**3))/3,1/3)))
if n==14:
    j=110
    n=10
    x=[]
    p=j*n
    while p!=0:
        j=j-1
        n=n+1
        p=j*n
        if p==3500:
            x.append(j)
    print(min(x))
    

代码有些长,不过整体写下来感觉收获颇多,首先简单地说一下代码里比较重要的思路。第一个点就是print("{:.6f}".format(500/3))和 print("%.6f"%(500/3))运行结果一致,我们可以混合使用来增加我们对这两种不同方法的熟练度。还有一个比较重要的是递归函数,我们在使用的时候一定要保证有基例,确保代码运行无误,不管我们是从正向还是方向来递归结果都是一样的,不管我感觉反着推结果的思路更容易被理解。还有两个比较重要的函数分别是chr()返回ASCII编码的单字符、ord()返回单字符对应的数字,比如说chr(65)结果就是A,再比如ord(A)运行结果就是65,而且A~Z用65~90表示,小写字母a~z用97~122表示,还有几个比较重要的比如0的AscII码就是48,空格键是32,只要记住这几个就可以反推其他的ASCII码。然后我们也可以利用upper()和lower()来返回大小写,只不过这两个函数是作用于字符串类型的,不过我们也可以将这两个函数于上述那两个函数结合起来发挥更高效的作用。最后一题我们利用while语句,来获取价格p=3500时的单价j,然后将其放入一个空列表里并输出列表里最小的数,需要注意的是在我使用的时候,while语句的条件我设置的p!=0,在这个过程里我们可以获取全部的价格,而并不只是从大到小最接近原始价格的那个值,否则我们得到的答案也许不是我们想要的那个答案。

谢谢您的观看!

  • 44
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值