构造程序逻辑
1. 寻找⽔仙花数。
说明:⽔仙花数也被称为超完全数字不变数、⾃恋数、⾃幂数、阿姆斯特朗数,它是⼀个3位
数,该数字每个位上数字的⽴⽅之和正好等于它本身,例如:$1^3 + 5^3+ 3^3=153$
for num in range(100, 1000):
low = num % 10
mid = num // 10 % 10
high = num // 100
if num == low ** 3 + mid ** 3 + high ** 3:
print(num)
正整数的反转
num = int(input('num = '))
reversed_num = 0
while num > 0:
reversed_num = reversed_num * 10 + num % 10
num //= 10
print(reversed_num)
2. 百钱百鸡问题。
说明:百钱百鸡是我国古代数学家张丘建在《算经》⼀书中提出的数学问题:鸡翁⼀值钱
五,鸡⺟⼀值钱三,鸡雏三值钱⼀。百钱买百鸡,问鸡翁、鸡⺟、鸡雏各⼏何?翻译成现代
⽂是:公鸡5元⼀只,⺟鸡3元⼀只,⼩鸡1元三只,⽤100块钱买⼀百只鸡,问公鸡、⺟鸡、
⼩鸡各有多少只?
for x in range(0, 20):
for y in range(0, 33):
z = 100 - x - y
if 5 * x + 3 * y + z / 3 == 100:
print('公鸡: %d只, ⺟鸡: %d只, ⼩鸡: %d只' % (x, y, z))
CRAPS⼜称花旗骰,是美国拉斯维加斯⾮常受欢迎的⼀种的桌上赌博游戏。该游戏使
⽤两粒骰⼦,玩家通过摇两粒骰⼦获得点数进⾏游戏。简单的规则是:玩家第⼀次摇骰⼦如
果摇出了7点或11点,玩家胜;玩家第⼀次如果摇出2点、3点或12点,庄家胜;其他点数玩
家继续摇骰⼦,如果玩家摇出了7点,庄家胜;如果玩家摇出了第⼀次摇的点数,玩家胜;其
他点数,玩家继续要骰⼦,直到分出胜负。
from random import randint
money = 1000
while money > 0:
print('你的总资产为:', money)
needs_go_on = False
while True:
debt = int(input('请下注: '))
if 0 < debt <= money:
break
first = randint(1, 6) + randint(1, 6)
print('玩家摇出了%d点' % first)
if first == 7 or first == 11:
print('玩家胜!')
money += debt
elif first == 2 or first == 3 or first == 12:
print('庄家胜!')
money -= debt
else:
needs_go_on = True
while needs_go_on:
needs_go_on = False
current = randint(1, 6) + randint(1, 6)
print('玩家摇出了%d点' % current)
if current == 7:
print('庄家胜')
money -= debt
elif current == first:
print('玩家胜')
money += debt
else:
needs_go_on = True
print('你破产了, 游戏结束!')
1. ⽣成斐波那契数列的前20个数。
a =0
b =1
for _in range(20):
a, b = b, a + b
print(a, end=' ')
2. 找出10000以内的完美数。
for i in range(1,10000):
a=0
for j in range(1,i-1):
if i%j==0:
a+=j
if a==i:
print(i)
3. 输出100以内所有的素数
for i in range(2,100):
needs=True
for j in range(2,i-1):
if i%j==0:
needs = False
break
if needs:
print(i,end=' ')