练习经典的例子
- 寻找水仙花数(3位)
- 正整数的反转
- 百钱百鸡问题
- CRAPS赌博游戏
- 斐波那契数列(Fibonacci sequence)前20个
- 寻找完美数(10000以内)
- 100内的素数
#三位数的水仙花数
#每个位数上的立方加起来等于这个数
for number in range(100,1000):
first = number//100
sec = number//10%10
third = number%10
#print(number,first,sec,third)
sum = first**3+sec**3+third**3
if sum == number:
print('%d and %d' % (sum, number))
#1000内的正整数反转输出
a = int(input())
if a < 10:
print(a)
elif a < 100:
print('%d%d' % (a%10, a//10))
elif a < 1000:
print('%d%d%d' % (a%10, a//10%10, a//100))
#正整数反转输出
num = int(input())
temp = num
new_num = 0
while temp>0:
new_num = new_num*10 + temp%10
temp //= 10
print(new_num)
#百元百鸡问题
for x in range(1,21):
for y in range(1,35):
z = 100-x-y
if 5*x+3*y+z/3 == 100:
print(x,y,z)
#CRAPS赌博游戏
#CRAPS又称花旗骰,是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。
#该游戏使用两粒骰子,
#玩家通过摇两粒骰子获得点数进行游戏。
#简单的规则是:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;
#玩家第一次如果摇出2点、3点或12点,庄家胜;
#其他点数玩家继续摇骰子,如果玩家摇出了7点,庄家胜;
#如果玩家摇出了第一次摇的点数,玩家胜;
#其他点数,玩家继续要骰子,直到分出胜负
from random import randint
import time
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)
time.sleep(1)
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)
time.sleep(1)
print('玩家摇出了%d点' % current)
if current == 7:
print('庄家胜')
money -= debt
elif current == first:
print('玩家胜')
money += debt
else:
needs_go_on = True
print('你破产了, 游戏结束!')
#Fibonacci sequence
#斐波那契数列,前20个
#第一种方法
def fibonacci(a, b):
return (a+b)
x = 1
y = 1
for i in range(11):
print('%d\t%d' % (x, y), end = '\t')
x = fibonacci(x, y)
y = fibonacci(x, y)
#第二种方法
a = 0
b = 1
for _ in range(20):
a,b = b,a+b
print(a, end=' ')
#列举10000内的完美数
#真因子求和
def sum_factor(n):
total = 0
for i in range(1,n):
if n % i == 0:
total += i
return total
sum = 0
for number in range(1,10000):
sum = sum_factor(number)
if sum == number:
print(number)
#列举100以内的素数
#判断素数只需用判断到平方根
import math
for num in range(2, 100):
is_prime = True
for factor in range(2, int(math.sqrt(num) + 1)):
if num % factor == 0:
is_prime = False
if is_prime:
print(num, end=' ')