1.百分制成绩转换五分制#1707
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
n = eval(input())
if n<=0:print('ERROR')
elif '.' in str(n):print('ERROR')
else:print(n,end=" ")sum = 0while True:if n==1:breakif n%2==0:n = int(n/2)print(n,end=" ")else:n = n*3+1print(n,end=" ")sum+=1print(f'\n{sum}')
3.中国古代数学问题集锦#133159
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 = 0for i in range(a+1):if i*2+(a-i)*4==b:print(f'有{i}只鸡,{a-i}只兔')flag=1if flag==0:print('Data Error!')def amount_of_goods():"""一些物品,不知道有多少个,3个3个数的话,还多出2个;5个5个数则多出3个;7个7个数也会多出2个。输入一个正整数,从小到大依次输出所有不超过输入数字且满足条件的物品数量,有多个答案时每行输出一个。例如输入:200输出:23128"""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 = 1b = 1sa = 0sb = 0sum = 0while True:t = nn = n - asa+=an = n - bsb+=bsum+=1if n==0:print(sum)print(sb,sa)breakelif(n<0):print(sum)sa-=asb-=bn = n+a+bsa+=n*(a/(a+b))sb+=n*(b/(a+b))print(f'{sb:.1f}',f'{sa:.1f}')breaka = a*2b = b/2def libai_buy_wine():"""大诗人李白,提着酒壶,从家里出来,酒壶中有酒若干。他边走边唱:无事街上走,提壶去买酒,遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒,计算并输出壶中原有酒几斗?"""a = 0for i in range(5):a+=1a/=2print(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
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
n = int(input())
a = 1.5
ss=1
for i in range(n):ss/=10b = 2.4def func(x):return x**5-15*x**4+85*x**3-225*x**2+274*x-121while(1):mid = (a+b)/2tp = func(mid)if tp>0:a=midelif tp<0:b=midif tp==0:print(f'{mid:.6f}')break####################################if abs(tp)<10**(-n):print(f'{mid:.6f}')break