完美立方
描述
费马大定理断言:当整数n>2时,关于a,b,c的方程an=bn+cn没有正整数解。该定理被提出后,历经三百多年,经历多人猜想辩证,最终在1995年被英国数学家安德鲁·怀尔斯证明。当然,可以找到大于1的4个整数满足完美立方等式:a3=b3+c3+d3(例如123=63+83+103)。编写一个程序,对于任意给定的正整数N(N ≤100),寻找所有的四元组(a,b,c,d),满足a3=b3+c3+d3,其中1<a,b,c,d≤N。
输入格式
输入一个正整数N(N<=100),
输出格式
按照a的值从小到大,每行输出一个完美立方等式,其中b,c,d按照非降序排列输出。若两个完美立方等式中a的值相同,则b的值小的先输出;在b值相等的情况下,c值小的先输出;在b,c都相等的情况下,d值小的先输出。
1 n = int(input()) 2 l = [0] 3 for i in range(1, n + 1): 4 l.append(i * i * i) 5 for a in range(6, n + 1): 6 for b in range(2, a - 1): 7 if l[a] < (l[b] + l[b + 1] + l[b + 2]): 8 break 9 for c in range(b + 1, a): 10 if l[a] < (l[b] + l[c] + l[c + 1]): 11 break 12 for d in range(c + 1, a): 13 if l[a] == (l[b] + l[c] + l[d]): 14 print("Cube = %d,Tripe = (%d,%d,%d)" % (a, b, c, d))
鸡兔同笼
描述
一个笼子里面关了若干只鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里脚的总数为a,则笼子里面至少有多少只动物,至多有多少只动物?
输入格式
第1行输入一个正整数n(n≤1000),表示测试数据的组数n,接下来n组测试数据每组一行,每行一个正整数a(a<32768)。提示: 输入使用input(),不要增加额外的提示信息 。
输出格式
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数之间用一个空格分开。输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数之间用一个空格分开。 如果没有满足要求的答案,则输出两个0。
1 N=int(input()) 2 for i in range (N): 3 n=int(input()) 4 if n % 2 != 0: 5 a=i=0 6 elif n % 4 == 0: 7 a = n / 2 8 i = n / 4 9 else: 10 i = (n - 2)/4+1 11 a = n / 2 12 print ("%d %d"%(i,a))
算24
描述
给出4个小于10的正整数,可以使用加、减、乘、除4种运算以及括号把4个数连接起来得到一个表达式。现在问题是,是否存在一种方式使得所得表达式的结果等于24。
这里加、减、乘、除以及括号的运算结果和运算优先级跟平常定义一致。
例如,对于5,5,5,1,可知5×(5-1/5)=24。又如,对于1,1,4,2无论如何都不能得到24
输入格式
在代码中的输入部分输入4个小于10的正整数。输入使用input(),不要增加额外的提示信息。
输出格式
对于每一组测试数据,输出一行,如果可以得到24,输出"YES"其算法;否则“NO”。
1 from itertools import permutations 2 n1 = input() 3 n2 = input() 4 n3 = input() 5 n4 = input() 6 n = n1+n2+n3+n4 7 sum = 1 8 for i in n: 9 sum *= eval(i) 10 if sum < 24: 11 print("NO") 12 exit() 13 notation = ['+', '-', '*', "/"] 14 st = set() 15 num = 0 16 number = set(permutations(n)) 17 for i in notation: 18 s = i 19 t1 = notation.copy() 20 t1.remove(i) 21 for j in t1: 22 s += j 23 t2 = t1.copy() 24 t2.remove(j) 25 for p in t2: 26 s += p 27 st.add(s) 28 s = i+j 29 s = i 30 newst = set() 31 for i in number: 32 for j in st: 33 newst.add(i[0]+j[0]+i[1]+j[1]+i[2]+j[2]+i[3]) 34 all = set() 35 for i in newst: 36 i1 = '('+i[0:3]+')'+i[3:] 37 i2 = i[0:2]+'('+i[2:5]+')'+i[5:] 38 i3 = i[0:4] + '(' + i[4:] + ')' 39 i4 = '(('+i[0:3]+')'+i[3:5]+")"+i[5:] 40 i5 = i[0:2]+'(('+i[2:5]+')'+i[5:]+")" 41 i6 = '(' + i[0:2] + '(' + i[2:5] + '))' + i[5:] 42 i7 = i[0:2]+'('+i[2:4]+'('+i[4:]+"))" 43 all.add(i1) 44 all.add(i2) 45 all.add(i3) 46 all.add(i4) 47 all.add(i5) 48 all.add(i6) 49 all.add(i7) 50 result = [] 51 for i in all: 52 try: 53 if eval(i) == 24: 54 result.append(i) 55 except: 56 pass 57 print("YES") 58 print("("+sorted(result)[0]+")")
温度转换异常处理
描述
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fabrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母 C 或小写字母 c 结尾,温度可以是整数或小数,如:12.34C 指摄氏度 12.34 度;
(2) 输入输出的华氏度采用大写字母 F 或小字字母 f 结尾,温度可以是整数或小数,如:87.65F 指华氏度 87.65 度;
(3) 考虑异常输入的问题,如输入不合法则抛出异常;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
输入格式
输入一个带单位的温度
输出格式
输入正常,输出转换后的温度,保留小数点后2位小数。
当用户输入值末位不是“C、c、F、f”中的一个时,输出"输入错误,末位只能是'C','c','F','f'"
当检测到NameError错误时输出'试图访问的变量名不存在'
当检测到SyntaxError 错误时输出'存在语法错误'
1 T=input() 2 try: 3 if T[-1] in ['C','c']: 4 F=eval(T[0:-1])*1.8+32 5 print("{:.2f}F".format(F)) 6 elif T[-1] in ['F','f']: 7 C=(eval(T[0:-1])-32)/1.8 8 print("{:.2f}C".format(C)) 9 else: 10 print("输入错误,末位只能是'C','c','F','f'") 11 except NameError: 12 print("试图访问的变量名不存在") 13 except SyntaxError: 14 print('存在语法错误')
a除以b
描述
计算a除以b,结果四舍五入,保留2位小数。
输入格式
输入包括两行, 每行一个实数, b不能等于0
输出格式
正常计算结果为一个实数,当用户输入b为0时输出"除零错误"
1 a=eval(input()) 2 b=eval(input()) 3 if b!=0: 4 c=a/b 5 print("{:.2f}".format(c)) 6 else: 7 print("除零错误")
2的n次方
描述
计算2的n次方,n由用户输入
输入格式
输入一个正整数
输出格式
输出一个正整数
1 n=eval(input()) 2 print(pow(2,n))
阶乘
描述
用户输入一个正整数,计算其阶乘
输入格式
输入一个正整数
输出格式
一个正整数
1 n=eval(input()) 2 a=1 3 for i in range(1,n+1): 4 a=a*i 5 print(a)
阶乘求和
描述
求1!+2!+3!+...的前n项的和,n从键盘输入
输入
一个正整数n
输出
从1到n每个数的阶乘的和
例如:
输入:5
输出:153
1 n=eval(input()) 2 a=1 3 sum=0 4 for i in range(1,n+1): 5 a=i*a 6 sum+=a 7 print(sum)
表达式求值
描述
已经a,b,c的值分别为5,8和3,利用以下公式计算并输出x的值。
1 a=5 2 b=8 3 c=3 4 d=pow(4,0.5) 5 print((-8+2)/10)