-
完美立方
描述
费马大定理断言:当整数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 24 Cube = 6,Tripe = (3,4,5)
Cube = 12,Tripe = (6,8,10)
Cube = 18,Tripe = (2,12,16)
Cube = 18,Tripe = (9,12,15)
Cube = 19,Tripe = (3,10,18)
Cube = 20,Tripe = (7,14,17)
Cube = 24,Tripe = (12,16,20)N= int(input()) for a in range(2,N+1): for b in range(2,N+1): for c in range(b,a): for d in range(c,a): if a**3==b**3+c**3+d**3: print("Cube = {},Tripe = ({},{},{})" .format(a,b,c,d))
- 70038003300381586927272753
鸡兔同笼
描述
一个笼子里面关了若干只鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里脚的总数为a,则笼子里面至少有多少只动物,至多有多少只动物?
输入格式
第1行输入一个正整数n(n≤1000),表示测试数据的组数n,接下来n组测试数据每组一行,每行一个正整数a(a<32768)。提示: 输入使用input(),不要增加额外的提示信息 。
输出格式
输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数之间用一个空格分开。输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数之间用一个空格分开。 如果没有满足要求的答案,则输出两个0。
输入输出示例
输入 输出 示例1 2
3
20
0 0
5 10
n=int(input()) l=list() for i in range(n): a=int(input()) if a%2!=0: min=max=0 else: j=a/4 t=a%j/2 min=int(t+j) max=int(a/2) l=l+[(min,max)] for b,c in l: print(b,c)
-
算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 5
5
5
1
YES
((5-(1/5))*5)示例2 1
1
1
1
NO from itertools import permutations n1 = input() n2 = input() n3 = input() n4 = input() n = n1+n2+n3+n4 sum = 1 for i in n: sum *= eval(i) if sum < 24: print("NO") exit() notation = ['+', '-', '*', "/"] st = set() num = 0 number = set(permutations(n)) for i in notation: s = i t1 = notation.copy() t1.remove(i) for j in t1: s += j t2 = t1.copy() t2.remove(j) for p in t2: s += p st.add(s) s = i+j s = i newst = set() for i in number: for j in st: newst.add(i[0]+j[0]+i[1]+j[1]+i[2]+j[2]+i[3]) all = set() for i in newst: i1 = '('+i[0:3]+')'+i[3:] i2 = i[0:2]+'('+i[2:5]+')'+i[5:] i3 = i[0:4] + '(' + i[4:] + ')' i4 = '(('+i[0:3]+')'+i[3:5]+")"+i[5:] i5 = i[0:2]+'(('+i[2:5]+')'+i[5:]+")" i6 = '(' + i[0:2] + '(' + i[2:5] + '))' + i[5:] i7 = i[0:2]+'('+i[2:4]+'('+i[4:]+"))" all.add(i1) all.add(i2) all.add(i3) all.add(i4) all.add(i5) all.add(i6) all.add(i7) result = [] for i in all: try: if eval(i) == 24: result.append(i) except: pass print("YES") print("("+sorted(result)[0]+")")
- 3003000370038003300381586927332087
温度转换异常处理
描述
温度的刻画有两个不同体系:摄氏度(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 102F
102D
AC
102ff
38.89C
输入错误,末位只能是'C','c','F','f'
试图访问的变量名不存在
存在语法错误
try: n=input() if n[-1] in ['F','f']: C=(eval(n[0:-1])-32)/1.8 print("{:.2f}C".format(C)) elif n[-1] in ['C','c']: F=eval(n[0:-1])*1.8+32 print("{:.2f}F".format(F)) else: print("输入错误,末位只能是'C','c','F','f'") except NameError: print("试图访问的变量名不存在") except SyntaxError: print("存在语法错误")
-
a除以b
描述
计算a除以b,结果四舍五入,保留2位小数。
输入格式
输入包括两行, 每行一个实数, b不能等于0
输出格式
正常计算结果为一个实数,当用户输入b为0时输出"除零错误"
输入输出示例
输入 输出 示例 1 5
05
3除零错误
1.67
a=float(input()) b=float(input()) if b==0: print("除零错误") else: c=a/b print("{:.2f}".format(c))
- 00370038003300381586927389932
2的n次方
描述
计算2的n次方,n由用户输入
输入格式
输入一个正整数
输出格式
输出一个正整数
输入输出示例
输入 输出 示例 1 5 32 n=int(input()) print(2**n)
- 038003300381586927407654
阶乘
描述
用户输入一个正整数,计算其阶乘
输入格式
输入一个正整数
输出格式
一个正整数
输入输出示例
输入 输出 示例 1 5 120 def fact(n): if n == 0: return 1 else: return n * fact(n-1) num = eval(input("")) print(fact(abs(int(num))))
- 0370038003300381586927423589
阶乘求和
描述
求1!+2!+3!+...的前n项的和,n从键盘输入
输入
一个正整数n
输出
从1到n每个数的阶乘的和
例如:
输入:5
输出:153
a=0 def fact(n): if n == 0: return 1 else: return n * fact(n-1) num = eval(input("")) for i in range(1,num+1): a=a+fact(abs(int(i))) print(a)
- 000370038003300381586927453743
表达式求值
描述
已经a,b,c的值分别为5,8和3,利用以下公式计算并输出x的值。
输入格式
该题目没有输入
输出格式
一个数值
a=5 b=8 c=3 import math x=(-b+math.sqrt(b*b-4*a*c))/(2*a) print(x)
- 0370038003300381586927478053
计算阶乘
描述
输入一个正整数,输出其阶乘值。
输入格式
输入一个正整数
输出格式
输出阶乘结果
输入输出示例
输入 输出 示例 1 6 720 def fact(n): if n == 0: return 1 else: return n * fact(n-1) num = eval(input("")) print(fact(abs(int(num))))