openjudge程序设计与实践python解题大全

        该题库是程序设计实习MOOC的python题库,一共94题的答案,建议先自己尝试再看答案,题目链接如下:OpenJudge - OpenJudgehttp://cxsjsxmooc.openjudge.cn/book/

001:A+B问题

A=input()
B=A.split(' ',1)
print(int(B[0])+int(B[1]))

002:字符三角形

a=input()
A="{:^5}".format(a)
B="{0:>2}{1:<3}".format(a, a*2)
C="{:^5}".format(a*5)
print(A)
print(B)
print(C)

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

A=input()
B=A.split(' ',2)
print((int(B[0])+int(B[1]))*int(B[2]))

004:反向输出一个三位数

A=input()
print(A[::-1])

005:字符菱形

a=input()
A="{:^5}".format(a)
B="{0:>2}{1:<3}".format(a, a*2)
C="{:^5}".format(a*5)
print(A)
print(B)
print(C)
print(B)
print(A)

006:输出第二个整数

A=input()
B=A.split(' ',2)
print(B[1])

007:求三个数的和

A=input()
B=A.split(' ',2)
a1=float(B[0])
a2=float(B[1])
a3=float(B[2])
s=a1+a2+a3
if s==int(s):
  C="{:.1f}".format(s)
  print(C)
else:
  print(s)

008:字符串交换

A=input()
B=input()
print(B[0]+B[1]+A[2]+A[3])
print(A[0]+A[1]+B[2]+B[3])

009:字符串中的整数求和

A=input()
B=A.split(' ',1)
C=B[0]
D=B[1]
print(int(C[0:2])+int(D[0:2]))

010:求(x+y)*x的值

A=input()
B=A.split(' ',1)
a1=float(B[0])
a2=float(B[1])
s=(a1+a2)*a1
print("{:.5f}".format(s))

011:奇偶数判断

A=int(input())
if A%2==0:
    print('even')
else:
    print('odd')

012:判断子串

A=input()
B=input()
if B.find(A)==-1:
    print('NO')
else:
    print('YES')

013:三角形判断

A=input()
B=A.split(' ',2)
a1=int(B[0])
a2=int(B[1])
a3=int(B[2])
if a1+a2>a3 and a1+a3>a2 and a2+a3>a1:
    print('yes')
else:
    print("no")

014:简单计算器

A=input()
B=A.split(' ',2)
a1=int(B[0])
a2=int(B[1])
a3=B[2]
if a3=='+':
    print(a1+a2)
elif a3=='-':
    print(a1-a2)
elif a3=='*':
    print(a1*a2)
elif a3 == '/':
    if a2==0:
        print('Divided by zero!')
    else:
        print(a1//a2)
else:
    print('Invalid operator!')

015:摄氏华氏温度转换

import decimal
A=input()
B=A[::-1]
a=A[0:len(A)-1]
x1=decimal.Decimal(a)
x2=decimal.Decimal('32')
x3=decimal.Decimal('1.8')
if B[0]=='F' or B[0]=='f':
    d=(x1-x2)/x3
    if int(d)==d:
        e="{:^}".format(int(d))
    else:
        e="{:.2f}".format(d)
    print(str(e)+'C')
else:
    d=x1*x3+x2
    if int(d)==d:
        e="{:^}".format(int(d))
    else:
        e="{:.2f}".format(d)
    print(str(e)+'F')

016:幸运的年份

A=int(input())
if (A-1949)%10==0:
    print('Lucky year')
elif (A-1921)%10==0:
    print('Good year')
elif A%400==0 or (A%4==0 and A%100>0):
    print('Leap year')
elif A>0:
    print('Common year')
else:
    print('Illegal year')

017:计算2的幂

a=int(input())
print(2**a)

018:计算多项式的值

A=input()
B=A.split(' ',4)
x=float(B[0])
a=float(B[1])
b=float(B[2])
c=float(B[3])
d=float(B[4])
y=a*(x**3)+b*(x**2)+c*x+d
print("{:.7f}".format(y))

019:车牌限号

A=input()
B=A[::-1]
c=int(B[0])
if c%2==0:
  print('NO')
else:
  print('YES')

020:点和正方形的关系

A=input()
B=A.split(' ',1)
if abs(eval(B[0]))<=1 and abs(eval(B[1]))<=1:
  print('yes')
else:
  print('no')

021:计算邮资

import math
A=input()
B=A.split(' ',1)
if int(B[0])<=1000:
  p=8
else:
  a1=int(B[0])-1000
  n=math.ceil(a1/500)
  p=8+4*n
if B[1]=='y':
  p+=5
print(p)

022:分段函数

A=input()
x=float(A)
y=(-x+2.5 if 0<=x<5 else
   2-1.5*(x-3)*(x-3) if 5<=x<10 else
   x/2-1.5)
print("{:.3f}".format(y))

023:大象喝水

import math
A=input()
B=A.split(' ',1)
a1=int(B[0])
a2=int(B[1])
V=3.14159*a1*a2*a2
n=math.ceil(20000/V)
print(n)

024:苹果和虫子2

import math
A=input()
B=A.split(' ',2)
a1=int(B[0])
a2=int(B[1])
a3=int(B[2])
n=math.ceil(a3/a2)
if a1-n>=0:
  print(a1-n)
else:
  print(0)

025:求一元二次方程的根

A=input()
B=A.split(' ',2)
a=float(B[0])
b=float(B[1])
c=float(B[2])
d=b*b-4*a*c
if d>0:
    x1=(-b+d**0.5)/(2*a)
    x2 =(-b-d ** 0.5) /(2*a)
    X1=max(x1,x2)
    X2=min(x1,x2)
    print("x1={:.5f};x2={:.5f}".format(X1,X2))
elif d<0:
    r=-b/(2*a)
    x1 = (-d) ** 0.5/ (2 * a)
    if -r==r:
        r=0
    print("x1={:.5f}+{:.5f}i;x2={:.5f}-{:.5f}i".format(r,x1,r,x1))
else:
    r = -b / (2 * a)
    print("x1=x2={:.5f}".format(r))

026:输入n个整数求和

a=0
n=input()
for i in range(int(n)):
  a1=input()
  b=int(a1)
  a=b+a
print(a)

027:从小到大输出正整数n的因子

n=input()
a=[]
for i in range(int(n)):
  if (int(n))%(i+1)==0:
     print(i+1,end=' ')

028:多次求n个数的和

m=input()
for i in range(int(m)):
  n=input()
  a=0
  for j in range(int(n)):
    a1=input()
    b=int(a1)
    a=b+a
  print(a)

029:字符直角三角形

A=input()
B=A.split(' ',2)
for i in range(int(B[1])):
  print(B[0]*(i+1))

030:多少种和为因子的取法

A=input()
a=0
B=A.split(' ',1)
a1=int(B[0])
a2=int(B[1])
for i in range(a1):
  for j in range(a1):
    b1=i+1
    b2=j+1
    if a2/(b1+b2)>=1 and a2%(b1+b2)==0 and b1<b2:
      print(b1,b2)
      a+=1
print(a)

031:寻找子串

A=input()
B=input()
C=B.replace(' ','')
c=A.find(C)
print(c)

032:求最小公倍数

A=input()
B=A.split(' ',2)
a1=int(B[0])
a2=int(B[1])
a3=int(B[2])
n=a1*a2*a3
for i in range(n):
  c=i+1
  if c%a1==0 and c%a2==0 and c%a3==0:
    print(c)
    break

033:十进制数转二进制数

number = int(input())
binnum = bin(number)
if number>0:
  print(binnum[2:])
elif number==0:
  print(0)
else:
  print('-'+binnum[3:])

034:求最大整数

# 输入若干行,每行若干整数,求所有整数的最大值
s=input().split()
maxV = eval(s[0])
try:
    while True:
        for x in s:
            maxV = max(maxV, int(x))
        s = input().split()  # 输入数据已经没有了还执行input,会产生异常
except:  # pycharm里Ctrl+D表示输入结束
    pass  # pass语句啥都不做,就是玩儿(你可以省略试试)
print(maxV)

035:求斐波那契数列第k项

A=int(input())
B=[0]*46
for i in range(A):
    if i<=1:
        B[i]=1
    else:
        B[i]=B[i-1]+B[i-2]
print(B[i])

036:求阶乘的和

import math
s=0
n = int(input())
for i in range(n):
  a=math.factorial(i+1)
  s=s+a
print(s)

037:求不大于n的全部质数

A=int(input())
if A>2:
  for i in range(2,A+1):
      for x in range(2,i):
          if i%x==0:
             break
      else:
          print(i,end=' ')
else:
    print(2)

038:角谷猜想

n = int(input())
while n != 1:
    if n % 2:
        print(str(n)+'*3+1='+str(n*3+1))
        n = n*3 + 1
    else:
        print(str(n)+'/2='+str(n//2))
        n = n // 2
print('End')

039:数字统计

A=input()
B=A
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值