Python-100-Days 之构造程序逻辑 Day5

Python-100-Days – from Github学习笔记

自己敲代码,进度考察 争取11月底刷完这篇教程

day5 构造程序逻辑

经典例子–
1.寻找水仙花数。
说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如: 1 3 + 5 3 + 3 3 = 153 1^3 + 5^3+ 3^3=153 13+53+33=153

for i in range(100,1000):
    a1=i//100
    a2=(i%100)//10
    a3=(i%100)%10
    if a1**3+a2**3+a3**3==i:
        print(i)
#输出是 153 370 371 407

2.百钱百鸡问题

for X in range(1,20):
    for Y in range(1,34):
        if 5*X+3*Y+(100-X-Y)/3==100:
            print(X,Y,100-X-Y)

3.CRAPS赌博游戏
说明:CRAPS又称花旗骰,是美国拉斯维加斯非常受欢迎的一种的桌上赌博游戏。该游戏使用两粒骰子,玩家通过摇两粒骰子获得点数进行游戏。简单的规则是:玩家第一次摇骰子如果摇出了7点或11点,玩家胜;玩家第一次如果摇出2点、3点或12点,庄家胜;其他点数玩家继续摇骰子,如果玩家摇出了7点,庄家胜;如果玩家摇出了第一次摇的点数,玩家胜;其他点数,玩家继续要骰子,直到分出胜负。

round=2
x=random.randint(1,6)
y=random.randint(1,6)
print('摇出的点数一共是:',(x+y))
if x+y==7 or x+y==11:
    print('玩家赢')
elif x+y==2 or x+y==3 or x+y==11:
    print('庄家赢玩家输')
else:
    while(round<=15):
        print('第%d局开始'%round)
        a=random.randint(1,6)   #重新赋值
        b=random.randint(1,6)
        print('摇出的点数一共是:',(a+b))
        if a+b==7:
            print('第%d局庄家赢玩家输'%round)
            break
        elif (a+b)==(x+y):
            print('第%d局玩家赢'%round)
            break
        else:
            round+=1

很明显文章里的条件更合理

练习–
1.生成斐波那契数列的前20个数。

a=1
b=1
print(a)
print(b)
for i in range(9):
    a=a+b
    b=b+a
    print(a)
    print(b)    

感觉自己写的太简单了

2.找出10000以内的完美数。
说明:完美数又称为完全数或完备数,它的所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身。例如:6( 6 = 1 + 2 + 3 6=1+2+3 6=1+2+3)和28( 28 = 1 + 2 + 4 + 7 + 14 28=1+2+4+7+14 28=1+2+4+7+14)就是完美数。

for i in range(2,10000):
    sum=0
    for j in range(1,i):
        if i%j==0:
            sum=sum+j
    if sum==i:
        print(i)
print('end')

答案平方根节约时间,这个循环太久,类似C,引入math函数里的squt解决

3.输出100以内所有的素数。
说明:素数指的是只能被1和自身整除的正整数(不包括1)。
for i in range(2,100):
j=2
sum=1
while(j<i):
if i%j0:
sum+=1
j+=1
if sum
1:
print(‘素数:’,i)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值