美文网首页
9.30 day5 提高作业

9.30 day5 提高作业

作者: 烟雨江畔丶 | 来源:发表于2018-10-01 22:19 被阅读0次

    1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)

    age = int(input('请输入你的年龄:'))
    while True:
        if  age <= 0:
            print('小不点')
            age = int(input('请输入你的年龄:'))
        elif age <= 12:
            print('小屁孩儿')
            age = int(input('请输入你的年龄:'))
        elif age <= 22:
            print('读书郎')
            age = int(input('请输入你的年龄:'))
        elif age <= 59:
            print('打工仔')
            age = int(input('请输入你的年龄:'))   
        else:
            print('老顽童')
            age = int(input('请输入你的年龄:'))
    #输出结果:
    请输入你的年龄:0
    小不点
    请输入你的年龄:12
    小屁孩儿
    请输入你的年龄:22
    读书郎
    请输入你的年龄:59
    打工仔
    请输入你的年龄:60
    老顽童
    请输入你的年龄:
    

    2.计算5的阶乘 5!的结果是

    n = 1
    for x in range(1,6):
        n *= x
    print(n)
    #输出结果: 120 
    

    3.求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。

    n1 = 1
    n2 = 2
    n3 = 0
    while n2<=21:
        n1 = 1
        for x in range(1,n2):
            n1=x*n1
        n2+=1
        n3+=n1
    print(n3)
    #  结果为 :2561327494111820313
    

    4.计算 1+1/2!+1/3!+1/4!+...1/20!=?

    n1 = 1
    n2 = 2
    n3 = 0
    while n2<=21:
        n1 = 1
        for x in range(1,n2):
            n1=1/x*n1
        n2+=1
        n3+=n1
    print(n3)   #1.7182818284590455
    

    5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。

    n=int(input("请输入一个整数:"))
    n1=0
    while n!=0:
        n1+=n
        n=int(input())
    print('输入的整数和为:',n1)
    #输入100 200 300 0 结果:输入的数和为: 600
    #依托于下题在网上查找的办法进行的修改
    n = int(input('请输入一个数:'))
    ret = []
    while True:
        if n != 0:
            ret.append(n)
            print('你输入的数和为:',sum(ret))#这条可以不用打
            n = int(input('请输入一个数:'))
        else:
            print('你输入的数和为:',sum(ret))
            break
    请输入一个数:100
    你输入的数和为: 100
    请输入一个数:200
    你输入的数和为: 300
    请输入一个数:300
    你输入的数和为: 600
    请输入一个数:0
    你输入的数和为: 600
    
    
    

    6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。

    #网上查询到的方法:
    n = int(input('请输入要循环的数字:'))
    count = int(input('请输入要循环的次数:')) 
    n1 = 0 #初始化最终求解
    for x in range(1,count+1): #循环次数与输入的值一样,但从1开始循环
        n2 = 0  #临时用的变量
        for y in range(0,x):
            n2 = n2 + 10**y #先计算 10**0 + 10**1 + ... + 10**x
        n1 = n1 + (n*n2) #再计算 n * x
    print(n1)
    
    请输入要循环的数字:3
    请输入要循环的次数:3
    369
    
    #网上查询到的方法2:注释是我自己猜的 -。-!
    a=input('输入数字>>>')
    count=int(input('几个数字相加>>>'))
    ret=[] # 创建一个空的列表,方便添加内容
    for i in range(1,count+1):
        ret.append(int(a*i)) #append:在列表的最后添加一个元素(),a*i表示重复打印i次a 
        print(ret[i-1])
    print(sum(ret))#sum() 方法对系列进行求和计算。(这条摘自百度答案)
    
    输入数字>>>3
    几个数字相加>>>3
    3
    33
    333
    369
    
    

    7.输入三个整数x,y,z,请把这三个数由小到大输出

    x = int(input('请输入x的值:'))
    y = int(input('请输入y的值:'))
    z = int(input('请输入z的值:'))
    if  x > y > z:
        print(z,y,x)
    elif x > z > y:
        print(y,z,x)
    elif y > x > z:
        print(z,x,y)
    elif y > z > x:
        print(x,z,y)
    elif z > x > y:
        print(y,x,z)
    else:
        print(x,y,z)
    
    请输入x的值:100
    请输入y的值:101
    请输入z的值:89
    89 100 101
    
    

    8.控制台输出三角形

    a.根据n的值的不同,输出相应的形状 
    n = int(input('请输入一个数:'))
    count = 0
    n1 = n
    while count<=n:                                                    
        for x in range(0,n):
            x+=1
            n1-=1
            if x < n:
                print('*'*(n1+1))
                count+=1
            else:
                print('*')
                n = int(input('请输入一个数:'))
                count = 0
                n1 = n
    请输入一个数:8
    ********
    *******
    ******
    *****
    ****
    ***
    **
    *
    b.根据n的值的不同,输出相应的形状(n为奇数)
    n = int(input('请输入一个奇数:'))
    count = 0
    n1=(n-1)/2+1
    while count<=n:
        for x in (0,n):
            x += 1
            count+=1    
            if x%2 !=0:
                n1-=1
                print(' '*int(n1),'*'*count)
    请输入一个奇数:11
          *
         ***
        *****
       *******
      *********
     ***********    
    

    9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。


    14217092-1cace41221edee99.jpg
    for i in range(1,10):
        for j in range(1,i+1):
            print('%d'%(j),'X','%d'%(i),'=','%d'%(i*j), end = '  ')
        else:
            print()
    
    1 X 1 = 1  
    1 X 2 = 2  2 X 2 = 4  
    1 X 3 = 3  2 X 3 = 6  3 X 3 = 9  
    1 X 4 = 4  2 X 4 = 8  3 X 4 = 12  4 X 4 = 16  
    1 X 5 = 5  2 X 5 = 10  3 X 5 = 15  4 X 5 = 20  5 X 5 = 25  
    1 X 6 = 6  2 X 6 = 12  3 X 6 = 18  4 X 6 = 24  5 X 6 = 30  6 X 6 = 36  
    1 X 7 = 7  2 X 7 = 14  3 X 7 = 21  4 X 7 = 28  5 X 7 = 35  6 X 7 = 42  7 X 7 = 49  
    1 X 8 = 8  2 X 8 = 16  3 X 8 = 24  4 X 8 = 32  5 X 8 = 40  6 X 8 = 48  7 X 8 = 56  8 X 8 = 64  
    1 X 9 = 9  2 X 9 = 18  3 X 9 = 27  4 X 9 = 36  5 X 9 = 45  6 X 9 = 54  7 X 9 = 63  8 X 9 = 72  9 X 9 = 81  
    >>> 
    
    

    10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?

    #.网上查的解题思路并做的修改
    zs = int(input('请输入马匹的总数:'))
    for dm in range(0,int(zs/3+1)):
        for zm in range(0,int(zs/2+1)):
            for xm in range(0,int(zs+1),2):
                if dm + zm + xm == zs and 3*dm + 2*zm + int(0.5*xm) == zs:
                    print('大马有%d匹,中马有%d匹,小马有%d匹'%(dm,zm,xm))
    请输入马匹的总数:100
    大马有2匹,中马有30匹,小马有68匹
    大马有5匹,中马有25匹,小马有70匹
    大马有8匹,中马有20匹,小马有72匹
    大马有11匹,中马有15匹,小马有74匹
    大马有14匹,中马有10匹,小马有76匹
    大马有17匹,中马有5匹,小马有78匹
    大马有20匹,中马有0匹,小马有80匹
    

    11.我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的: 5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

    qzs = int(input('请输入钱总数:'))
    jzs = int(input('请输入鸡总数:'))
    for gj in range(0,int(jzs/2+1)):
        for mj in range(0,int(jzs/3+1)):
            for cj in range(0,3*jzs+1,3):
                if gj + mj + cj == jzs and 5*gj+3*mj +1/3*cj==qzs:
                    print('公鸡有%d只,母鸡有%d只,雏鸡有%d只'%(gj,mj,cj))
    
    请输入钱数:100
    请输入鸡总数:100
    公鸡有0只,母鸡有25只,雏鸡有75只
    公鸡有4只,母鸡有18只,雏鸡有78只
    公鸡有8只,母鸡有11只,雏鸡有81只
    公鸡有12只,母鸡有4只,雏鸡有84只
    >>> 
    

    12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?

    count = 0
    money = int(input('请输入钱数:'))
    for xfs in range(0,int(money/15+1)):
        for ys in range(0,int(money/5+1)):
            for xz in range(0,int(money/2+1),5):
                if xfs*15 + ys*5 + xz*2 == money:
                    print('洗发水为%d瓶时,牙刷有%d块,香皂有%d块'%(xfs,ys,xz))
                    count+=1
    print('一共有',count,'种方案')
    
    
    
    请输入钱数:100
    洗发水为0瓶时,牙刷有0块,香皂有50块
    洗发水为0瓶时,牙刷有2块,香皂有45块
    洗发水为0瓶时,牙刷有4块,香皂有40块
    洗发水为0瓶时,牙刷有6块,香皂有35块
    洗发水为0瓶时,牙刷有8块,香皂有30块
    洗发水为0瓶时,牙刷有10块,香皂有25块
    洗发水为0瓶时,牙刷有12块,香皂有20块
    洗发水为0瓶时,牙刷有14块,香皂有15块
    洗发水为0瓶时,牙刷有16块,香皂有10块
    洗发水为0瓶时,牙刷有18块,香皂有5块
    洗发水为0瓶时,牙刷有20块,香皂有0块
    洗发水为1瓶时,牙刷有1块,香皂有40块
    洗发水为1瓶时,牙刷有3块,香皂有35块
    洗发水为1瓶时,牙刷有5块,香皂有30块
    洗发水为1瓶时,牙刷有7块,香皂有25块
    洗发水为1瓶时,牙刷有9块,香皂有20块
    洗发水为1瓶时,牙刷有11块,香皂有15块
    洗发水为1瓶时,牙刷有13块,香皂有10块
    洗发水为1瓶时,牙刷有15块,香皂有5块
    洗发水为1瓶时,牙刷有17块,香皂有0块
    洗发水为2瓶时,牙刷有0块,香皂有35块
    洗发水为2瓶时,牙刷有2块,香皂有30块
    洗发水为2瓶时,牙刷有4块,香皂有25块
    洗发水为2瓶时,牙刷有6块,香皂有20块
    洗发水为2瓶时,牙刷有8块,香皂有15块
    洗发水为2瓶时,牙刷有10块,香皂有10块
    洗发水为2瓶时,牙刷有12块,香皂有5块
    洗发水为2瓶时,牙刷有14块,香皂有0块
    洗发水为3瓶时,牙刷有1块,香皂有25块
    洗发水为3瓶时,牙刷有3块,香皂有20块
    洗发水为3瓶时,牙刷有5块,香皂有15块
    洗发水为3瓶时,牙刷有7块,香皂有10块
    洗发水为3瓶时,牙刷有9块,香皂有5块
    洗发水为3瓶时,牙刷有11块,香皂有0块
    洗发水为4瓶时,牙刷有0块,香皂有20块
    洗发水为4瓶时,牙刷有2块,香皂有15块
    洗发水为4瓶时,牙刷有4块,香皂有10块
    洗发水为4瓶时,牙刷有6块,香皂有5块
    洗发水为4瓶时,牙刷有8块,香皂有0块
    洗发水为5瓶时,牙刷有1块,香皂有10块
    洗发水为5瓶时,牙刷有3块,香皂有5块
    洗发水为5瓶时,牙刷有5块,香皂有0块
    洗发水为6瓶时,牙刷有0块,香皂有5块
    洗发水为6瓶时,牙刷有2块,香皂有0块
    一共有 44 种方案
    >>> 
    
    

    相关文章

      网友评论

          本文标题:9.30 day5 提高作业

          本文链接:https://www.haomeiwen.com/subject/yzxgoftx.html