完美立方
描述
費馬大定理斷言:當整數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)
