1.百分制成绩转换五分制#1707
python
n = int(input())
if n>=90:
print('A')
elif n>=80:
print('B')
elif n>=70:
print('C')
elif n>=60:
print('D')
else:
print('E')
2.角古猜想#73963
python
n = eval(input())
if n<=0:
print('ERROR')
elif '.' in str(n):
print('ERROR')
else:
print(n,end=" ")
sum = 0
while True:
if n==1:
break
if n%2==0:
n = int(n/2)
print(n,end=" ")
else:
n = n*3+1
print(n,end=" ")
sum+=1
print(f'\n{sum}')
3.中国古代数学问题集锦#133159
python
def type_judge(question):
"""接收一个字符串为参数,根据参数调用不同函数执行不同代码。
这种写法不规范,但把输入、输出都放在一个函数中,方便管理。
"""
if question == '鸡兔同笼':
chicken_rabbit() # 用户输入为'鸡兔同笼'调用此函数
elif question == '物不知数':
amount_of_goods() # 用户输入为'物不知数'调用此函数
elif question == '二鼠打洞':
two_mice() # 用户输入为'二鼠打洞'调用此函数
elif question == '李白买酒':
libai_buy_wine() # 用户输入为'李白买酒'调用此函数
elif question == '宝塔上的琉璃灯':
lamp_on_pagoda() # 用户输入为'宝塔上的琉璃灯'调用此函数
else:
print('输入错误')
def chicken_rabbit():
"""
在同一行内输入用空格分隔的两个整数,代表头和脚的数量,计算并输出笼中各有多少只鸡和兔,
如无解则输出"Data Error!",函数无返回值。
输入:35 94
输出:有23只鸡,12只兔
输入:100 5
输出:Data Error!
"""
a,b = input().split()
a = int(a)
b = int(b)
flag = 0
for i in range(a+1):
if i*2+(a-i)*4==b:
print(f'有{i}只鸡,{a-i}只兔')
flag=1
if flag==0:
print('Data Error!')
def amount_of_goods():
"""一些物品,不知道有多少个,3个3个数的话,还多出2个;5个5个数则多出3个;
7个7个数也会多出2个。输入一个正整数,从小到大依次输出所有不超过输入数字
且满足条件的物品数量,有多个答案时每行输出一个。
例如输入:200
输出:
23
128
"""
a = int(input())
for i in range(a+1):
if i%3==2 and i%5==3 and i%7==2:
print(i)
def two_mice():
"""有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打洞一尺,小老鼠也是打洞一尺。
大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。计算并输出它们几天可以相逢,
相逢时各打了多少尺。
输入格式:输入1 个整数,代表墙的厚度,单位为尺
输出格式:
第一行输出1 个整数,表示相遇时所需的天数
第二行输出2 个浮点数,分别为小鼠和大鼠打洞的距离,单位为尺,保留小数点后1 位数字。
"""
n = int(input())
a = 1
b = 1
sa = 0
sb = 0
sum = 0
while True:
t = n
n = n - a
sa+=a
n = n - b
sb+=b
sum+=1
if n==0:
print(sum)
print(sb,sa)
break
elif(n<0):
print(sum)
sa-=a
sb-=b
n = n+a+b
sa+=n*(a/(a+b))
sb+=n*(b/(a+b))
print(f'{sb:.1f}',f'{sa:.1f}')
break
a = a*2
b = b/2
def libai_buy_wine():
"""大诗人李白,提着酒壶,从家里出来,酒壶中有酒若干。他边走边唱:无事街上走,提壶去买酒,
遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒,计算并输出壶中原有酒几斗?"""
a = 0
for i in range(5):
a+=1
a/=2
print(a)
def lamp_on_pagoda():
"""有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,
已知共有765 盏琉璃灯,计算并输出每层各有多少盏琉璃灯。
输出为8行,从上往下数字依次增大。
"""
ls = [1,2,4,8,16,32,64,128]
a = 765/sum(ls)
for i in range(8):
print(f'第{i+1}层上有{int(a*ls[i])}只琉璃灯')
if __name__ == '__main__':
choice = input() # 接收用户输入的字符串
type_judge(choice) # 调用判断输入的函数决定执行哪个函数
4.计算函数曲线与x轴包围的面积 #2502
python
a,b = input().split()
a=float(a)
b = float(b)
c = int(input())
import math
sum = 0
stp = abs(a-b)/c
nowi = a
for i in range(c):
sum += abs(stp*(abs(math.sin(nowi))+abs(math.sin(nowi+stp)))/2)
nowi+=stp
print(f'{sum:.2f}')
5.二分法求函数的零点 #37177
python
n = int(input())
a = 1.5
ss=1
for i in range(n):
ss/=10
b = 2.4
def func(x):
return x**5-15*x**4+85*x**3-225*x**2+274*x-121
while(1):
mid = (a+b)/2
tp = func(mid)
if tp>0:
a=mid
elif tp<0:
b=mid
if tp==0:
print(f'{mid:.6f}')
break
####################################
if abs(tp)<10**(-n):
print(f'{mid:.6f}')
break