Python 100——Day 5

本文精选了一系列编程练习题目,包括水仙花数、正整数反转、百钱百鸡问题、CRAPS赌博游戏、斐波那契数列、完美数、素数查找等,涵盖了从数学问题到游戏模拟的多种应用场景,适合不同水平的程序员进行实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

练习经典的例子

  1. 寻找水仙花数(3位)
  2. 正整数的反转
  3. 百钱百鸡问题
  4. CRAPS赌博游戏
  5. 斐波那契数列(Fibonacci sequence)前20个
  6. 寻找完美数(10000以内)
  7. 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=' ')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值