01 寻找“水仙花数”
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
问题:请找出100-1000之间的水仙花数。
for i in range(100,1000):
first = int(i / 100)
second = int((i % 100) / 10)
third = int((i % 100) % 10 )
sum = first **3 + second **3 + third **3
if sum == i:
print(str(sum)+" "+"是水仙花数")
02 寻找“完美数”
完美数——如果一个数恰好等于它的因子之和,各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数。例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。
问题:请找出0-1000之间的完美数。
for i in range(0,1000):
sum = 0
for j in range(1,i):
if i != j and i % j == 0:
sum += j
if(sum == i):
print(sum)
03 “百钱百鸡”
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
问题:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。
'''
由于题目要求,公鸡,母鸡,小鸡都要买。所以公鸡数量小于20只。
母鸡数量小于33只。
'''
for i in range(1,20):
for j in range(1,33):
k = 100 - i - j
if 5*i + 3*j + k/3 == 100:
print("公鸡{}只,母鸡{}只,小鸡{}只".format(i,j,k))
04 “斐波那契数列”
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
问题:输出斐波那契数列的前10项。
# 斐波那契
i = 0
j = 1
for _ in range(10):
(i,j)=(j,i+j)
print(i,end=" ")
05 “Craps游戏”
from random import randint
money = 1000
while money > 0:
print("您现在有{}元".format(money))
play = False
while True:
debt = int(input('请下注:'))
print(debt)
if debt > 0 and debt <= money:
break
first = randint(1,6) * 2
print("您掷出了{}点".format(first))
if first == 7 or first == 11:
print("玩家胜!")
money += debt
elif first == 2 or first == 3 or first == 12:
print("庄家胜!")
money -= debt
else:
play = True
while play:
second = randint(1,6) * 2
print("您掷出了{}点".format(second))
if second == 7:
print("庄家胜!")
money -= debt
play = False
elif second == first:
print("玩家胜!")
money += debt
play = False
print("您的资金不足0元!")