DAY 5 Practice

Practice1 构造水仙花数

"""
构造水仙花数
version 0.1
author 罗绪成
"""
for x in range (100,1000):
    a=int(x/100)
    b=int(x%100/10)
    c=int(x%10)
    if pow(a,3)+pow(b,3)+pow(c,3)==x:
        print(x)

Practice 1*

"""
构造自幂数
version 0.1
author 罗绪成
"""
import math
#自幂数位数 n
n=int(input('请输入最高的自幂数位数:'))
for a in range(1,n+1):
#a为幂数计数器
    for i in range(math.pow(10,a-1), pow(10,a)):
        num=0
#x为待判断的自然数
        for j in str(i):
            num+=int(math.pow((int(j),a)
            if i == num:
            print (i)

Practice 2 完美数

"""
构造完美数
完美数的所有约数之和恰好等于这个数字本身
version 0.1
author 罗绪成
"""
#求n以内的完美数
import math
n=int(input('查询n以内的完美数,输入n:'))
#n是查询的最大值
for x in range(1,n+1):
#x是正在判别的数值
    num=0
    for k in range(1,x):
#k是x的真约数
        if x%k==0:
            num+=k
    if num==x:
        print('%d是完美数'%x)

Practiice 3 百钱白鸡问题

"""
鸡翁一值钱五,鸡母一值钱三
鸡雏三值钱一。百钱买百鸡
问鸡翁、鸡母、鸡雏各几何
verision 0.1
author 罗绪成
"""
#鸡翁数g, 鸡母数m, 鸡雏数c
for g in range(1,20):
    for m in range (1,34):
        for c in range (1,100):
            if 5*g+3*m+0.3*c==100 and g+m+c==100:
                print('鸡翁%d只,鸡母%d只,鸡雏%d只'%(g,m,c))

 

Practice 4

"""
构造斐波那契数列
被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
version 0.1
author 罗绪成
"""
n=int(input('需要输出的斐波那契数个数:'))
a,b=0,1
sum=0
for _ in range(1,n+1):
 a,b=b,a+b
 print(a,end=' ')

 

Practice 5

"""
游戏规则:
玩家掷两个骰子,每个骰子点数为1-6,
如果第一次点数和为7或11,则玩家胜;
如果点数和为2、3或12,则玩家输庄家胜。
若和为其他点数,则记录第一次的点数和,
玩家继续掷骰子,
直至点数和等于第一次掷出的点数和则玩家胜;
若掷出的点数和为7则庄家胜。

version 0.1
author 罗绪成
"""
import random

money=1000
while money>0:
    print('您的资产为',money)
    needs_go_on = False
    while True:
        bet = int(input('$$$请下注:'))
        money = money - bet
        if bet>0 and money>0:
            break
    point = random.randint(1, 6) + random.randint(1, 6)
    print('摇出了%d点' % point)
    if point == 7 or point== 11:
        print('玩家胜出')
        money += 2 * bet
    elif point == 2 or point==3 or point==12:
        print('庄家胜出')
    else:
        needs_go_on = True
    while needs_go_on:
        p = random.randint(1, 6) + random.randint(1, 6)
        print('摇出了%d点' % p)
        if p == point:
            print('玩家胜出')
            money += 2 * bet
            needs_go_on = False
        elif p == 7:
            print('庄家胜出')
            needs_go_on = False
print('你破产了, 游戏结束!')

 

上一篇:PAT (Basic Level) Practice (中文) 1021 个位数统计 (15 分)


下一篇:*Practice*MS Money