青春是一列不停歇的火車,今天就來解火車題目。如果說九乘九乘法是迴圈基本題型,那麼這題就是迴圈進階運用,如果還不會九乘九乘法,建議先複習迴圈。
請用迴圈寫出九乘九乘法,如下圖
不求整齊乾淨輸出,只要可以輸出就可以
之後會再討論排版整齊要怎麼做
#讀取
import sys
def inp():
numcase=int(sys.stdin.readline())#第一列總共幾台火車
for i in range(numcase):
numtest=int(sys.stdin.readline().replace("\n",""))#火車節數
test=sys.stdin.readline().replace("\n","")
test=list(map(int,test.split()))
print("test=",test)
print("Optimal train swapping takes {0} swaps.".format(swap(numtest,test)))
print("===========")
測資讀取
def swap(num,test):
count=0
print("i_range({0})".format(num))
for i in range(num):#總共比num輪
print("j_range({0})".format(num-i-1))
for j in range(num-i-1):#每輪比num-i-1次
print("i={4} j={0} test[{0}]={1} test[{2}]={3}".format(j,j+1,test[j],test[1+j],i))
if(test[j]>test[1+j]):#如果這個數字比排在他後面的大,那麼跟後面的數字做交換
test[j],test[1+j]=test[1+j],test[j]
count+=1
print("swap count=",count)
print(test)
print("----")
return count
inp()
這邊是用氣泡排序法,每輪比的次數會逐漸遞減一。
因為每輪比的次數不一樣,所以迴圈上要設定變數。
感謝撥冗閱讀