python作业记录(小算法练习)

python作业记录(小算法练习),第1张

python作业记录(小算法练习)

学校布置的作业,纯记录方便复习,做法不是最简洁(懒得改),能实现就是胜利

原题:

解答: 

'''第一题'''
listgj = []     #空列表放可以买的公鸡只数
listmj = []     #空列表放可以买的母鸡只数
listxj = []     #空列表放可以买的小鸡只数
print("n第一题")
for gj in range(21):                                                   #公鸡100元够买20只
    for mj in range(34):                                               #母鸡100够买33只
        for xj in range(101):                                          #小鸡够买100次
            if gj + mj + xj == 100 and gj*5 + mj*3 + xj*1/3 == 100:    #如果公鸡加母鸡加小鸡够100只且公鸡*5加母鸡*3加小鸡*1/3够一百元
                listgj.append(gj)                     # 计算出公鸡的值放入列表 listgj里
                listmj.append(mj)                     # 计算出母鸡的值放入列表 listmj里
                listxj.append(xj)                     # 计算出小鸡的值放入列表 listxj里
print("第二种可以买公鸡",listgj[1],"只","母鸡",listmj[1],"只","小鸡",listxj[1],"只")    #输出第二种买法三种鸡分别够买多少只
print("第三种可以买公鸡",listgj[2],"只","母鸡",listmj[2],"只","小鸡",listxj[2],"只")    #输出第三种买法三种鸡分别够买多少只
print("第四种可以买公鸡",listgj[3],"只","母鸡",listmj[3],"只","小鸡",listxj[3],"只")    #输出第四种买法三种鸡分别够买多少只

'''第二题'''
print("n第二题")
for i in range(1,999):                  #让i范围在1-999
    if 555555 % i == 0:                 #555555%3等于0,没有余数
        j = i                           #让最后的i值赋给j
print("555555最大的三位数约数是",j)      #输出最大三位数

'''第三题'''
print("n第三题")
for q in range(10):                                     #车牌前两位,因为前两个数字相同,只拿一个数
    for h in range(10):                                 #车牌后两位,因为后两个数字相同,只拿一个数
        if q != h:                                      #因为前两个数字相同,后两个也相同,默认只拿一个数比,如果前两位和后两位不相等
            cp = q * 1000 + q * 100 + h * 10 + h        #车牌等于车牌第一位乘1000,第二位乘100,第三位乘10,第四位不乘,加起来就是四位数
            for z in range(31, 100):                    #z是整数,因为31是平方最靠近四位数的数,所以放最后,100是四位数最大的,放最前面
                if z ** 2 == cp:                        #如果上面z的平方等于车牌
                    print("车牌号是",cp)                #输出车牌号


'''第四题'''
print("n第四题")
c = 0                               #存储器
for back in range(9000,10000):      #反序数,因为整数 n 是四位数,最小四位数1000的九倍也是9000,直接将反序数范围设置在9000以上10000以下
    for n in range(1000,1100):      #四位整数,因为四位整数不可能大于1100(因为 1100 * 9 = 9900 ),直接将四位整数范围设置在1000以上1100以下
        if n * 9 == back and str(back)[::-1] == str(n):           #如果四位整数 n * 9 等于反序数,且反序数反过来等于四位整数 n
            c = str(n)[::-1]        #类型转换n为字符串c,用切片将字符串c倒着输入:
            c = int(c)              #重新将c类型转换为整数,为了下一行的对比
    if c == back:                   #如果倒过来的c等于反序数
        c = str(c)                  #再次将c类型转换为字符串,为了下一行的反序
        print('n的值是',c[::-1])              #输出反过来的c

'''第五题'''
print("n第五题")
list1 = []   #建立空列表list1放P代表的数字
list2 = []   #建立空列表list2放E代表的数字
list3 = []   #建立空列表list3放A代表的数字
list4 = []   #建立空列表list4放R代表的数字
for P in range(10):                                     #给P代入值0-9  
    for E in range(10):                                 #给E代入值0-9
        for A in range(10):                             #给A代入值0-9
            for R in range(10):                         #给R代入值0-9
                PEAR = P * 1000 + E * 100 + A * 10 + R  #PEAR的值
                ARA = A * 100 + R * 10 + A              #ARA的值
                PEA = P * 100 + E *10 + A               #PEA的值
                if PEAR - ARA == PEA:                   #计算 PEAR - ARA = PEA
                    list1.append(P)                     # 计算出P的值放入列表 list1里
                    list2.append(E)                     # 计算出E的值放入列表 list2里
                    list3.append(A)                     # 计算出A的值放入列表 list3里
                    list4.append(R)                     # 计算出R的值放入列表 list4里
print("第一种算法: P =",list1[0],"E =",list2[0],"A =",list3[0],"R =",list4[0])     #输出第一种算法每项的数字
print("第二种算法: P =",list1[1],"E =",list2[1],"A =",list3[1],"R =",list4[1])     #输出第二种算法每项的数字

结果:

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5571705.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存