2-8 常見程式範例
氣泡排序法(Bubble Sort Algorithm)
array=[5,3,4,6,9,1,7,2,0,8]
def BubbleSort(data):
n = len(data)
for i in range(n - 1):
for j in range(n - 1 - i):
if data[j] > data[j+1]:
temp = data[j]
data[j] = data[j+1]
data[j+1] = temp
return data
print(BubbleSort(array))
找出質數
lower = 100
upper = 200
for num in range(lower, upper+1):
if num > 1:
for i in range(2, num):
if num % i == 0:
break
else: #for 搭配else 會在跑完迴圈最後一圈之後執行else裡面的程式
print(num)
最小公倍數
(Least Common Mutiple, LCM)
def LCM(num1, num2):
if num1 > num2: #找出兩個數之中較大者
greater = num1
else:
greater = num2
while True:
if (greater % num1 == 0 ) and (greater % num2 == 0): #都能被兩個數整除
break
greater += 1
return greater
n1 = int(input("請輸入第一個數字:"))
n2 = int(input("請輸入第二個數字:"))
print("最小公倍數 = " , LCM(n1, n2))
最大公因數
(Greatest Common Divisor,GCD) 或 (Highest Common Factor, HCF)
def GCD(num1, num2):
if num1 > num2 :
smaller = num2
else:
smaller = num1
for i in range(1, smaller + 1):
if (num1 % i == 0) and (num2 % i == 0): #i都能被兩個數整除
factor = i
return factor
n1 = int(input("請輸入第一個數字:"))
n2 = int(input("請輸入第二個數字:"))
print("最大公因數 = ", GCD(n1, n2))
數字反向
n = int(input("請輸入一個數字:"))
def rev_num(num):
rev = 0
while num > 0:
reminder = num % 10
rev = (rev * 10) + reminder
num = num // 10
return rev
print("數字反向後=", rev_num(n)))
字串反向
s = input("請輸入字串:")
def rev_str(string):
x = ""
for i in string:
x = i + x
return x
print(rev_str(s))