1.題目1:輸入A、B,輸出A+B。

#input: 12 45 #output:57 c = input().split() #將輸入以空格為分隔符返回一個字符串列表 a,b = map(int,c) sum1 = a + b print(sum1)
2.題目2:求1+2+3+...+n的值。

#input:4 #output:10 print(sum(range(1,int(input()) + 1)))
3.題目3:給定圓的半徑r,求圓的面積。

#input:4 #output:50.2654825 import math print(round(math.pi*float(input())**2,7))
4.題目4:
Fibonacci數列的遞推公式為:Fn=Fn-1+Fn-2,其中F1=F2=1。
當n比較大時,Fn也非常大,現在我們想知道,Fn除以10007的余數是多少。

#input:10 #output:55 import numpy as np n = int(input()) a = np.zeros((1,n),dtype = "int") a[0][0] = 1 for i in range(1,n): a[0][i] = a[0][i-1] + a[0][i-2] print(a[0][n-1]%10007) ''' def fei(n): if n == 0: return 0 elif n == 1: return 1 else: return fei(n-1)%10007 + fei (n-2)%10007 n = int(input())#項數 print(fei(n)) '''
5.題目5:
給定一個年份,判斷這一年是不是閏年。
當以下情況之一滿足時,這一年是閏年:
1. 年份是4的倍數而不是100的倍數;
2. 年份是400的倍數。
其他的年份都不是閏年。

#input:2013 #output:no year = int(input()) if (year>=1990 and year<=2050) and (year%400 == 0 or (year%4 == 0 and year%100 !=0)): print("yes") elif year<1990 or year>2050: print("輸入錯誤") else: print("no")
6.題目6:
對於長度為5位的一個01串,每一位都可能是0或1,一共有32種可能。它們的前幾個是:
00000
00001
00010
00011
00100
請按從小到大的順序輸出這32種01串。

for i in range(32): print("{:05b}".format(i,'b'))
7.題目7:
利用字母可以組成一些美麗的圖形,下面給出了一個例子:
ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC
這是一個5行7列的圖形,請找出這個圖形的規律,並輸出一個n行m列的圖形。

#input:5 7 #output: ''' ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC ''' m, n = map(int, input().split()) letters = '' # 1.產生所有字母 for i in range(26): letters += chr(ord("A") + i) # 2. 產生第一行代碼 x = letters[:n] for i in range(1,m+1): try: print(x) x = letters[i] + x[0:n-1] except: pass ''' try: n, m = map(int, input().split()) letter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' x = letter[:m] for i in range(1, n + 1): print(x) x = letter[i] + x[0:-1] except: pass #本文版權歸作者和博客園共有,來源網址:https://www.cnblogs.com/xiaolan-Lin 歡迎各位轉載, #未經作者本人同意轉載文章時,必須在文章頁面明顯位置給出作者和原文連接,否則保留追究法律責任的權利! ''' ''' import numpy as np m,n = map(int,input().split()) #輸入原始矩陣 mx = np.ones((m,n),dtype="str") print(mx) #產生所有字母的列表 letters = [] for i in range(26): letters.append(chr(ord("A") + i)) # print(ord("A"))#65 某個字符串對應的ascii碼;chr ascii碼轉字符串 '''
8.題目8:
給出n個數,找出這n個數的最大值,最小值,和。
第一行為整數n,表示數的個數。
第二行有n個數,為給定的n個數,每個數的絕對值都小於10000。
輸出三行,每行一個整數。第一行表示這些數中的最大值,第二行表示這些數中的最小值,第三行表示這些數的和。

#input:5 # 1 3 -2 4 5 #output: #5 #-2 #11 # 給出n個數,找出這n個數的最大值,最小值,和。 n = int(input()) #幾個數 a = input().split() #注意不能直接將列表轉換類型 a = [int(i) for i in a] #>>> input().split() #4 5 6 #['4', '5', '6'] #>>> print(max(a)) print(min(a)) print(sum(a))
9.題目9:
給出一個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。
第一行包含一個整數n。
第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。
第三行包含一個整數a,為待查找的數。
如果a在數列中出現了,輸出它第一次出現的位置(位置從1開始編號),否則輸出-1。

#input: #6 #1 9 4 8 3 9 #9 #output: #2 n = int(input()) # 幾個數 a = input().split() a = [int(i) for i in a] # 輸入的列表 b = int(input()) # 待查找的數 try: print(a.index(b) + 1) #待查找數的下標,加一代表位置 except: print(-1)
10.題目10:
楊輝三角形又稱Pascal三角形,它的第i+1行是(a+b)i的展開式的系數。
它的一個重要性質是:三角形中的每個數字等於它兩肩上的數字相加。
下面給出了楊輝三角形的前4行:
1
1 1
1 2 1
1 3 3 1
給出n,輸出它的前n行。

#input:4 #output: #1 #1 1 #1 2 1 #1 3 3 1 #思想:列表相加 + 觀察 n = int(input()) def yanghui(p): p = [1] + [p[i] + p[i+1] for i in range(len(p) - 1)] + [1] return p #1.將每一行輸出一個列表 p = [1] #print(p) p_s = [] for i in range(n): p_s.append(p) p = yanghui(p) #p.append(0) #增加一個元素,因為下一行比上一行多一個,#不用了,上面p迭代呢 #print(p) #2.輸出 for i in p_s: #print(i) #將列表元素這樣輸出:1 3 3 1 for j in i: print(j,end=' ') print("\t") #回車不換行

#關鍵:后面一行除了前面和后面的1,中間的數是前面一行數的滑動兩個數的和 #1.產生楊輝三角 n = int(input()) begin = [[1],[1,1]] for i in range(n-2):#因為前面兩個要加的數字是空的 newend = begin[-1] new = [1] new = new + [newend[j]+newend[j+1] for j in range(len(newend) - 1)] + [1] begin.append(new) a = str(begin)[1:-1] #2.格式化字符串 import re b = re.split(r'], ',a) # 分開每一個 c = [i + ']' for i in b[:]] # 加右括號 d = [] #將[]都去掉,之后將,轉換為空格 for i in range(len(c)): if i == len(c)-1: e = c[i][1:-2] else: e = c[i][1:-1] f = e.replace(',',' ') # str.replace(old, new[, max]) d.append(f) #print(d) #3.輸出 h = n + 2*(n -1) #最后一行的長度 for i in d: s = ' '*((h-len(i))//2) print(s + i + s) ''' #3.輸出(最后一行是n + n-1個長度) h = n + 2*(n -1) for i in d: print('{:^hs}'.format(i)) #精度保存時候是不能作為變量修改的 '''
11.題目11:
153是一個非常特殊的數,它等於它的每位數字的立方和,即153=1*1*1+5*5*5+3*3*3。編程求所有滿足這種條件的三位十進制數。

#按從小到大的順序輸出滿足條件的三位十進制數,每個數占一行。 #153是一個非常特殊的數,它等於它的每位數字的立方和, #即153=1*1*1+5*5*5+3*3*3。編程求所有滿足這種條件的三位十進制數。 for i in range(100,1000): gewei = i%10 shiwei = (i//10)%10 baiwei = (i//100)%10 if i == gewei**3 + shiwei**3 + baiwei**3: print(i)
12.題目12:
1221是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的,編程求所有這樣的四位十進制數。

#按從小到大的順序輸出滿足條件的四位十進制數。 for i in range(10000): gewei = i%10 shiwei = (i//10)%10 baiwei = (i//100)%10 qianwei = (i//1000)%10 if qianwei == 0: continue elif gewei == qianwei and shiwei == baiwei: print(i)
13.題目13:
123321是一個非常特殊的數,它從左邊讀和從右邊讀是一樣的。
輸入一個正整數n, 編程求所有這樣的五位和六位十進制數,滿足各位數字之和等於n 。
輸入一行,包含一個正整數n。
按從小到大的順序輸出滿足條件的整數,每個整數占一行。

#input:52 #output: #899998 #989989 #998899 num1 = int(input()) for i in range(10000,999999): gewei = i%10 shiwei = (i//10)%10 baiwei = (i//100)%10 qianwei = (i//1000)%10 wanwei = (i//10000)%10 shiwanwei = (i//100000)%10 sum1 = gewei + shiwei + baiwei + qianwei + wanwei + shiwanwei tiaojian1 = (shiwanwei==0 and wanwei==gewei and shiwei==qianwei and num1==sum1)#5位數 tiaojian2 = (shiwanwei==gewei and shiwei==wanwei and baiwei==qianwei and num1==sum1)#6位數 if tiaojian1 or tiaojian2: print(i,end=" ") print("\t")
14.題目14:
(1)給出一個非負整數,將它表示成十六進制的形式。
(2)從鍵盤輸入一個不超過8位的正的十六進制數字符串,將它轉換為正的十進制數后輸出。
(3)給定n個十六進制正整數,輸出它們對應的八進制數。
輸入的第一行為一個正整數n (1<=n<=10)。
接下來n行,每行一個由0~9、大寫字母A~F組成的字符串,表示要轉換的十六進制正整數,每個十六進制數長度不超過100000。
輸出n行,每行為輸入對應的八進制正整數。

#給出一個非負整數,將它表示成十六進制的形式。 #10進制轉16進制:hex(n) 將10進制整數轉換成16進制,以字符串形式表示。 #10進制轉8進制oct(n) #10進制轉二進制:bin(n) #8進制轉16進制:hex(int(n,8)) #8進制轉換成10進制:int(n,8) #8進制轉換成2進制:bin(int(n,8)) #2進制轉換成16進制:hex(int(n,2)) #2進制轉換成8進制:oct(int(n,2)) #2進制轉換成10進制:int(n,2) #30 1E 10進制轉16進制 #n = int(input()) #s = hex(n)[2:] #print(s.upper()) ''' str = "www.runoob.com" print(str.upper()) # 把所有字符中的小寫字母轉換成大寫字母 print(str.lower()) # 把所有字符中的大寫字母轉換成小寫字母 print(str.capitalize()) # 把第一個字母轉化為大寫字母,其余小寫 print(str.title()) # 把每個單詞的第一個字母轉化為大寫,其余小寫 ''' #16進制轉10進制 FFFF 65535 #a = input() #a = '0x' + a #print(int(a,16)) #注意:int最終輸出為10進制 #16進制轉8進制 n = int(input()) #想要轉換的數的個數 l1 = [] #存儲要輸出的轉換后的8進制字符串 for i in range(n): a = input() #接收轉換的數 a = '0x' + a b = int(a,16) #16進制對應的10進制數 s = oct(b)[2:] l1.append(s) #輸出: for i in l1: print(i)
15.問題15(這個的知道內存的知識):
給定一個長度為n的數列,將這個數列按從小到大的順序排列。
第一行為一個整數n。
第二行包含n個整數,為待排序的數,每個整數的絕對值小於10000。
輸出一行,按從小到大的順序輸出排序后的數列。
5
8 3 6 4 9
3 4 6 8 9

n = int(input()) #列表的長度 l1 = input().split()#接收傳入的數字,轉為列表 l1 = [int(i) for i in l1] #print(l1) #list.sort(cmp=None, key=None, reverse=False) ''' l1ed = l1.sort() print(id(l1ed),id(l1.sort()),id(l1)) print(l1ed) #這塊的話:l1ed指向那個l1排序后的那個空間, #而sort的話是在原內存上面進行的,那邊是空的 #list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函數 sorted 方法返回的是一個新的 list, #而不是在原來的基礎上進行的操作。 ''' l1.sort() for i in l1: print(i,end = ' ')
16. 題目16:時間轉換,將秒換為時分秒的形式

#eg: input:3661 #(t最大為86399,其 < 60**3) #output: 1:1:1 t = int(input()) shi = 0 fen = 0 miao = 0 if t < 60: miao = t elif t < 60**2: fen = t//60 miao = t - fen*60 else: shi = t//(60**2) fen = (t - shi*3600)//60 miao = t - shi*3600 - fen*60 print(str(shi) + ":" + str(fen) + ":" + str(miao))
17. 題目17:
#給定兩個僅由大寫字母或小寫字母組成的字符串(長度介於1到10之間),它們之間的關系是以下4中情況之一:
#1:兩個字符串長度不等。比如 Beijing 和 Hebei
#2:兩個字符串不僅長度相等,而且相應位置上的字符完全一致(區分大小寫),比如 Beijing 和 Beijing
#3:兩個字符串長度相等,相應位置上的字符僅在不區分大小寫的前提下才能達到完全一致(也就是說,它並不滿足情況2)。比如 beijing 和 BEIjing
#4:兩個字符串長度相等,但是即使是不區分大小寫也不能使這兩個字符串一致。比如 Beijing 和 Nanjing
#編程判斷輸入的兩個字符串之間的關系屬於這四類中的哪一類,給出所屬的類的編號。

''' print(str.upper()) # 把所有字符中的小寫字母轉換成大寫字母 print(str.lower()) # 把所有字符中的大寫字母轉換成小寫字母 print(str.capitalize()) # 把第一個字母轉化為大寫字母,其余小寫 print(str.title()) # 把每個單詞的第一個字母轉化為大寫,其余小寫 ''' s1 = input() s2 = input() if len(s1) != len(s2): print(1) elif s1 == s2: print(2) elif s1 != s2 and s1.upper() == s2.upper(): print(3) else: print(4)
18.題目18:
因式分解:輸入范圍[a b],輸出其中所有數字的因式分解。
3 10
3=3
4=2*2
5=5
6=2*3
7=7
8=2*2*2
9=3*3
10=2*5

#str = "-"; #seq = ("a", "b", "c") #print(str.join( seq )) #a-b-c a, b = map(int, input().split()) for num in range(a,b+1): e = num #備份num m = [] #用來存儲各個分式 while e != 1: for i in range(2,num+1): if e%i == 0: m.append(str(i)) e //= i break #因為例如4 = 2*2,試了2之后還要試2 print("{}=".format(num),end="") print("*".join(m)) #原文地址:https://blog.csdn.net/weixin_43937790/article/details/105024479
19.題目19(這個測試數據是正確的,但是我真不知道問題出在哪里):
給定一個N階矩陣A,輸出A的M次冪(M是非負整數)
例如:
A =
1 2
3 4
A的2次冪
7 10
15 22
接下來N行,每行N個絕對值不超過10的非負整數,描述矩陣A的值

import numpy as np m,n = map(int,input().split())# m階矩陣,n次冪 mx = np.zeros((m,m),dtype="int") #存儲矩陣元素 i = 0 #遍歷每一行時候的指針 mx_row_str = [] #存儲矩陣元素每一行的字符串形式 mx_row_int = [] #存儲矩陣元素每一行的數字形式 #1.循環寫入矩陣 while i < m: mx_row_str = input().split() mx_row_int = [int(j) for j in mx_row_str] mx[i] = mx_row_int i += 1 #2.將array轉為mat(矩陣)形式,因為矩陣有運算 mx = np.mat(mx) mx_out = mx**n #print(mx_out) #3.輸出為指定格式 mx_out = mx_out.tolist() #這個輸出格式這塊注意一下 for i in mx_out: for j in i: print(j,end = ' ') print("\t") #print(mx_out)
20.題目20:
在每行中,給出矩形的一對相對頂點的坐標,每個點的坐標都用兩個絕對值不超過10^7的實數表示。

#原文鏈接:https://www.pythonf.cn/read/12682 #用個list轉換就可以: s1 = list(map(float, input().split())) s2 = list(map(float, input().split())) if s1[0] > s1[2]: s1[0],s2[2] = s1[2],s1[0] #交換x軸 if s1[1] > s1[3]: s1[1],s2[3] = s1[3],s1[1] #交換y軸 if s2[0] > s2[2]: s2[0],s2[2] = s2[2],s2[0] #交換x軸 if s1[1] > s1[3]: s2[1],s2[3] = s2[3],s2[1] #交換y軸 #print(s1,s2) temp_x1 = max(s1[0],s2[0]) #中間矩形的橫坐標(左) temp_y1 = max(s1[1],s2[1]) temp_x2 = min(s1[2],s2[2]) #中間矩形的橫坐標(右) temp_y2 = min(s1[3],s2[3]) if temp_x1 > temp_x2 or temp_y2 < temp_y1: r = 0 else: r = abs(temp_x1-temp_x2)*abs(temp_y1-temp_y2) print("{:.2f}".format(r))