1,水仙花數
水仙花數是指一個 3 位數,它的每個位上的數字的 3次冪之和等於它本身
(例如:1^3 + 5^3+ 3^3 = 153) 代碼如下:
方法一: for i in range(100,1000): # 進行for循環 num = i a = num % 10 # 取出個位數 num = num // 10 # 向下整除 b = num % 10 # 取出十位數 num = num // 10 c = num % 10 num = num // 10 if a ** 3 + b ** 3 + c ** 3 == i: # 根據條件進行判斷 print(i) 方法二: def flower_number1(num): length = len(str(num)) # 求出參數共有幾位 count = length sum = 0 while count: # 進行循環 sum += (num // 10 ** (count - 1) % 10) ** length # 運算符冪的優先級比乘除高,下邊式子與上邊式子相同 # sum += (num // (10 ** (count - 1))% 10) ** length count -= 1 if sum == num: return True else: return False 方法三: def flower_number2(num): str1 = str(num) # 賦值生成一個新的字符串 count = len(str1) # 計算出字符串的長度 length = count sum = 0 while count: sum += int(str1[count-1]) ** length # 取出字符串的第幾位數,相當於num 的個位,十位,,在進行乘方運算 count -= 1 if sum == num: return True else: return False
2,完美數
找出1~9999之間的所有完美數
完美數是除自身外其他所有因子的和正好等於這個數本身的數
例如: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14
import math # 導入數學模塊 for i in range(1,10000): # 循環 sum = 0 for j in range(1,int(math.sqrt(i)) + 1): # math.sqrt()為開平方。 # print(j) if i % j == 0: # 判斷是否為因數 sum = sum + j if j != 1 and i / j != j: # 因數為自身時不能加,因數兩個相同時只能加一個 sum += i / j if sum == i: print(i)
3,百雞百錢
1只公雞5元 1只母雞3元 3只小雞1元 用100元買100只雞
問公雞 母雞 小雞各有多少只
for cock in range(21): # 公雞最多有二十只 for hen in range(34): # 母雞最多有三十三只 chick = 100 - cock - hen # 算出小雞的數量 if cock * 5 + hen * 3 + chick / 3 == 100: # 買雞共花費多少錢 print("公雞:%d,母雞:%d,小雞:%d"%(cock,hen,chick))
4,斐波那鍥數列
輸出斐波那鍥數列的前一百個數
0,1,1,2,3,f(n) = f(n-1) + f(n-2)
a = 1 b = 0 print(b) #輸出第一個數 for _ in range(99): # 進行九十九次循環 b,a = a,a+b # 交換兩數的順序 print(a)
5,回文數
判斷輸入的正整數是不是回文數
回文數是指將一個正整數從左往右排列和從右往左排列值一樣的數
num = input("請輸入一個數字:") # 輸入一個數字 str1 = num # num為字符串形式 length = len(str1) # 求出字符串的長度 count = length // 2 # 向下整除法 flag = True # 設置一個標志位 for i in range(count): if str1[i] != str1[length-i-1]: # 進行判斷是否相同 flag = False break if flag: print("%d 是回文數"%num) else: print("%d 不是回文數" % num)
6,Craps賭博游戲
玩家搖兩顆色子 如果第一次搖出7點或11點 玩家勝
如果搖出2點 3點 12點 庄家勝 其他情況游戲繼續
玩家再次要色子 如果搖出7點 庄家勝
如果搖出第一次搖的點數 玩家勝
否則游戲繼續 玩家繼續搖色子
玩家進入游戲時有1000元的賭注 全部輸光游戲結束
from random import randint # 導入隨機數模塊 money = 1000 # 你一共有1000元錢 while money > 0: # 若有錢則可以繼續玩 while True: stake = int(input("請下注:")) if stake > 0 and stake <= money: # 若輸入不正確重新輸入,直到正確為止 break flag = False # 設置標志位,進行判斷 dice1 = randint(1,6) + randint(1,6) # 進行搖骰子 print("玩家第一次搖出的點數是:%d"%dice1) if dice1 == 2 or dice1 == 3 or dice1 == 12 : print("庄家勝") money -= stake # 庄家勝,玩家輸錢 print("余額為:%d"%money) elif dice1 == 7 or dice1 == 11: print("玩家勝") money += stake # 玩家勝,庄家賠錢 print("余額為:%d" % money) else: flag = True # 游戲繼續,平局 while flag: print("玩家再次搖色子") dice2 = randint(1,6) + randint(1,6) # 再次搖色子 print("玩家第二次搖出的點數是:%d"%dice2) if dice2 == dice1: print("玩家勝") money += stake flag = False print("余額為:%d" % money) else: print("游戲繼續") flag = False print("余額為:%d" % money) print("你可以走了")
