openJudge-Python题集

目录:

  • 001-A+B问题
  • 002-字符三角形
  • 003-计算(a+b)*c的值
  • 004-反向输出一个三位数
  • 005-字符菱形
  • 006-输出第二个整数
  • 009-字符串中的整数求和
  • 012-判断子串
  • 014-简单计算器
  • 022-分段函数
  • 044-鸡尾酒疗法
  • 054-递归复习法

001-A+B问题:

问题描述:

在一行输入两个整数,请输出它们的和。

输入

一行,两个整数

输出

两个整数的和

3711e29662f4441395a7877e956fee54.png

源代码:
s=input().split()
print(int(s[0])+int(s[1]))

002 -字符三角形:

问题描述:

给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。

输入

输入只有一行, 包含一个字符。

输出

该字符构成的等腰三角形,底边长5个字符,高3个字符

f1245818bf4f4ca5a13c1ac1356c8b79.png

源代码:

a=input()
print("  "+a+"  ")
print(" "+a*3+" ")
print(a*5)

003-计算(a+b)*c的值:

问题描述:

给定3个整数a、b、c,计算表达式(a+b)*c的值。

输入

输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。
(-10,000 < a,b,c < 10,000)

输出

输出一行,即表达式的值

392f68714f224aa184da240c18497483.png

源代码:

s=input().split()
print((int(s[0])+int(s[1]))*int(s[2]))

004-反向输出一个三位数:

问题描述:

将一个三位数反向输出。

输入

一个三位数n。

输出

反向输出n

8bd7805d98524983b6242e493dd3d090.png

源代码:
s=input()
print(s[2]+s[1]+s[0])

005-字符菱形:

问题描述:

给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。

输入

输入只有一行, 包含一个字符。

输出

该字符构成的菱形

8004fd373c724972966239376a7e1f79.png

源代码:
a=input()
print("  "+a+"  ")
print(" "+a*3+" ")
print(a*5)
print(" "+a*3+" ")
print("  "+a+"  ")

006-输出第二个整数:

问题描述:

 

输入

只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。

输出

只有一行,一个整数,即输入的第二个整数

360f91950bc4478ab466fcb8b3f2dd3b.png

源代码:
s=input().split()
print(int(s[1]))

 009-字符串中的整数求和:

问题描述:

输入

一行,两个字符串

输出

两个字符串中整数的和

d0c33a1d10a740db83a18995363e346e.png

源代码:
s=input().split()
a,b=s[0],s[1]
print(int(a[0]+a[1])+int(b[0]+b[1]))

 012-判断子串:

问题描述:

 

输入

​两行字符串。字符串长度不超过100。

输出

如果第一行是第二行的子串,就输出 "YES",否则输出"NO"

0c4880ff64dc422f8453fa025ec2b0bb.png

源代码:
a=input()
b=input()
if a in b:
    print("YES")
else:
    print("NO")

014-简单计算器:

问题描述:

输入

输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。

输出

输出只有一行,一个整数,为运算结果。然而:
1. 如果出现除数为0的情况,则输出:Divided by zero!
2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!

8ed172923e524e3d96a5de9011c8b4be.png

源代码:
s=input().split()
a,b,c=int(s[0]),int(s[1]),s[2]
if c in ("+","-","*","/"):
   if b == 0:
       print ("Divided by zero!")
   else:
       print(int(eval(s[0]+s[2]+s[1])))
else:
    print("Invalid operator!")

022-分段函数:

问题描述:

编写程序,计算下列分段函数y=f(x)的值。

y=-x+2.5; 0 <= x < 5

y=2-1.5(x-3)(x-3); 5 <= x < 10

y=x/2-1.5; 10 <= x < 20

输入

一个浮点数N,0 <= N < 20

输出

输出N对应的分段函数值:f(N)。结果保留到小数点后三位

5fb8a22ffe014976b32e18f431b91be3.png

源代码:
x=float(input())
if 0<=x<5:
    y=-x+2.5
elif 5<=x<10:
    y=2-1.5*(x-3)*(x-3)
elif 10<=x<20:
    y=x/2-1.5
print("%.3f" % y)

044-鸡尾酒疗法:

问题描述:

 

鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾 滋病。该疗法的应用可以减少单一用药产生的抗药性,最大限度地抑制病毒的复制,使被破坏的机体免疫功能部分甚至全部恢复,从而延缓病程进展,延长患者生 命,提高生活质量。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式 进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给 出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。请写程序判定各种改进疗法效果如何。

输入

第一行为整数n( 1 < n <= 20);
其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。
这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。

输出

有n-1行输出,分别表示对应改进疗法的效果:
如果效果更好,输出better;如果效果更差,输出worse;否则输出same

ecc9fc7bca324914901ef89f0e4e1608.png

源代码:
n=int(input())
lit=input().split()
x=int(lit[1])/int(lit[0])
for i in range(n-1):
    lit=input().split()
    y=int(lit[1])/int(lit[0])
    if y-x>0.05:
        print("better")
    elif x-y>0.05:
        print("worse")
    else:
        print("same")

054-递归复习法:

问题描述:

 

据说,学渣复习期末考试,要用递归复习法,即当他复习知识点A的时候,他发现理解知识点A必须先理解知识点B和知识点C,于是他先去学习知识点B和知识点C,当他复习知识点B的时候,又发现理解知识点B必须先理解知识点D与知识点E,又得先去复习知识点D和知识点E。

现在学渣小明正在通过递归复习法复习知识点n。对任意知识点1 <= k <= n,他复习这个知识点本身需要k小时的时间。但是,小明对这些知识点非常不熟悉,以至于他对任意知识点k, 3 <= k <= n,都必须先复习知识点k - 1和k - 2才能复习知识点k;在复习知识点k - 1的时候,又得先复习知识点k - 2和k - 3才能复习知识点k - 1;以此类推……。注意,即使在复习知识点k - 1的时候他已经复习过了知识点k - 2,在复习知识点k之前他已经忘掉了知识点k - 2,因此他还是会再复习一遍知识点k - 2,并重复上述的递归过程完成新的一轮k - 2的复习后,才会复习知识点k。

现在请问他一共需要多少个小时才能完成知识点n的复习?

输入

第一行是一个整数m,代表数据组数,1 <= m <= 25
之后m行,每行是一组数据,即一个整数n,1 <= n <= 25

输出

对每组数据,输出小明复习知识点n所需要的时间

1ba8843d92c747d9b2b378ae91387409.png

源代码:
def mytime(k):
    if k<3:
        return k
    return k+mytime(k-1)+mytime(k-2)
n=int(input())
for i in range(n):
    k=int(input())
    print(mytime(k))

如果有代码什么问题或者有什么其他的写法欢迎和我讨论分享!!!886~~~

本篇博客为本人编写,如有错误之处,还望各位指正。文章为原创,如要转载请注明出处^O^

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值