題目一(輸出國際象棋棋盤)
分析:
用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。
主要代碼:
for i in range(8):
for j in range(8):
if (i+j)%2!=0:
print(chr(219)*2,end='')
else:
print(' ',end='')
print('')
題目二(排列組合問題)
有1、2、3、4個數字,能組成多少個互不相同且無重復數字的四位數?都是多少?
分析:
我們可以先預測一下,共有24種情況。然后,可以用循環嵌套的方法,嵌套四個循環,類似 for a in range(1,5):,使數字在循環中不停變化,組合;再設定類似 a!=b 的判斷條件,使其數字不能重復,最后輸出符合條件的數字即可。
主要代碼:
for a in range(1,5):
for b in range(1,5):
for c in range(1,5):
for d in range(1,5):
if (a!=b) and (b!=c) and (c!=d) and (d!=a) and (a!=c) and (b!=d):
print("%d%d%d%d" % (a, b, c, d))
題目三(最小的K個數)
輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。
分析:
首先從鍵盤輸入n個整數(列表輸入)和k,然后臨近的數字兩兩進行比較,按照從小到大的順序進行交換,如果前面的值比后面的大,則交換順序。這樣一趟過去后,最小的數字被交換到了第一位;然后是次小的交換到了第二位,。。。,依次直到第k個數,停止交換。返回lists的前k個數(lists[0:k],前閉后開)。最后將結果再轉成字符串輸出。
主要代碼:
lst = list(input().split(','))
def function(lst,k):
length = len(lst)
for i in range(k):
for j in range(i+1,length):
if lst[i] > lst[j]:
lst[j],lst[i] = lst[i],lst[j]
return lst[0:k]
n=int(input())
a=(function(lst,n))
for x in a:
print(x,end=',')
