美文网首页
day4-循环和分支-作业-提高

day4-循环和分支-作业-提高

作者: _桑心人 | 来源:发表于2018-09-30 15:24 被阅读0次

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

    代码如下

    age = input('请输入一个年龄:')
    if 0 <= age <= 3:
        print(age,"幼儿")
    elif age <= 12:
        print(age,'儿童')
    elif age <= 18:
        print(age,'少年')
    elif age <= 28:
        print(age,'青年')
    else:
        print(age,'中老年')
    

    运行结果

    请输入一个年龄:56
    56 中老年
    

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

    代码如下

    num = 1
    sum1 = 1
    while num <= 5:
        sum1 *= num
        num += 1
    print(sum1)
    

    运行结果

    120
    [Finished in 0.1s]
    

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

    代码如下

    num = 1
    sum1 = 1
    sum2 = 0
    for x in range(1,21):
        sum1 = 1
           num = 1
        while num <= x:
            sum1 *= num
            num += 1
        sum2 += sum1
    print(sum2)
    

    运行结果

    2561327494111820313
    [Finished in 0.1s]
    

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

    代码如下

    num = 1
    sum1 = 1
    sum2 = 0
    for x in range(1,21):
        sum1 = 1
        num = 1
        while num <= x:
            sum1 *= num
            num += 1
        sum2 += 1/sum1
    print(sum2)
    

    结果如下

    1.7182818284590455
    [Finished in 0.1s]
    

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

    代码如下

    sum1 = 0
    str1 = input("请输入一个整数:")
    num = int(str1)
    while num:
        sum1 += num
        str1 = input("请输入一个整数:")
        num = int(str1)
    print(sum1)
    

    结果如下

    请输入一个整数:5
    请输入一个整数:6
    请输入一个整数:0
    11
    

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

    代码如下

    a = input("请输入一个整数:")
    a1 = int(a)
    b = input("请输入相加的个数:")
    b1 = int(b)
    sum1 = 0
    sum2 = 0
    for x in range(b1):
        sum2 = 0
        y = 0
        while y <= x:
            sum2 += a1*(10**y)
            y += 1
        sum1 += sum2        
    print(sum1)
    

    结果如下

    请输入一个整数:5
    请输入相加的个数:3
    值为 615
    

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

    代码如下

    x = int(input('请输入整数x的值:'))
    y = int(input('请输入整数y的值:'))
    z = int(input('请输入整数z的值:'))
    t = 0
    if x < y:
        t = x
        x = y
        y = t
    if x < z:
        t = x
        x = z
        z = a 
    if y < z:
        t = y
        y = z
        z = t
    print(z,y,x)
    

    结果如下

    请输入整数x的值:5
    请输入整数y的值:9
    请输入整数z的值:4
    4 5 9
    

    8.控制台输出三角形

    • a.根据n的值的不同,输出相应的形状

    代码如下

    n = int(input('请输入一个整数:'))
    while n:
        i = 0
        while i < n:
            print('*',end=' ')
            i += 1
        n -= 1
        print('\n')
    

    运行结果

    请输入一个整数:5
    * * * * *
    * * * *
    * * *
    * *
    *
    请输入一个整数:4
    * * * *
    * * *
    * *
    *
    
    • b.根据n的值的不同,输出相应的形状(n为奇数)

    代码如下

    n = int(input('请输入一个奇数:'))
    t = n
    for x in range(1,n+1):
        if x % 2 != 0:
            i = 0
            str1 = ''
            while i < x:
                str1 += '*'
                i += 1
            print(str1.center(t,' '))
    

    运行结果

    请输入一个奇数:7
       *
      ***
     *****
    *******
    

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

    代码如下

    i = 1
    j = 1
    num = 0
    while i <= 9:
        while j <= i:
            a = 1
            while a <= j:
                num = a*j
                print('%dx%d=%d' % (a,j,num),end=' ')
                a += 1
            j += 1
        i += 1
        print('\n')
    

    运行结果

    请输入一个奇数:7
    1x1=1 
    
    1x2=2 2x2=4 
    
    1x3=3 2x3=6 3x3=9 
    
    1x4=4 2x4=8 3x4=12 4x4=16 
    
    1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 
    
    1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 
    
    1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 
    
    1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 
    
    1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 
    
    [Finished in 0.1s]
    

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

    代码如下

    big = 1
    middle = 1
    small = 1
    while big <= 100//3:
        middle = 1
        while middle <= 100//2:
            small = 1
            while small <= 100:
                if(big*3 + middle*2 + small//2 == 100 and big + middle + small ==100):
                    print('大马有%d,中马有%d,小马有%d' % (big,middle,small))
                small += 1
            middle += 1
        big += 1
    

    运行结果

    大马有1,中马有32,小马有67
    大马有2,中马有30,小马有68
    大马有4,中马有27,小马有69
    大马有5,中马有25,小马有70
    大马有7,中马有22,小马有71
    大马有8,中马有20,小马有72
    大马有10,中马有17,小马有73
    大马有11,中马有15,小马有74
    大马有13,中马有12,小马有75
    大马有14,中马有10,小马有76
    大马有16,中马有7,小马有77
    大马有17,中马有5,小马有78
    大马有19,中马有2,小马有79
    [Finished in 0.6s]
    

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

    代码如下

    import math
    
    cock = 1
    hen = 1
    chick = 1
    while cock <= 100//5:
        hen = 1
        while hen <= 100//3:
            chick = 1
            while chick <= 300:
                if(cock*5 + hen*3 + math.ceil(chick//3) == 100 and cock + hen + chick == 100):
                    print('公鸡有%d,母鸡有%d,雏鸡有%d' % (cock,hen,chick))
                chick += 1
            hen += 1
        cock += 1
    

    运行结果

    公鸡有3,母鸡有20,雏鸡有77
    公鸡有4,母鸡有18,雏鸡有78
    公鸡有7,母鸡有13,雏鸡有80
    公鸡有8,母鸡有11,雏鸡有81
    公鸡有11,母鸡有6,雏鸡有83
    公鸡有12,母鸡有4,雏鸡有84
    [Finished in 2.8s]
    

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

    代码如下

    shampoo = 1
    soap = 1
    toothpaste = 1
    while shampoo <= 100 // 15:
        soap = 1
        while soap <= 100 // 2:
            toothpaste = 1
            while toothpaste <= 5:
                if(shampoo*15 + soap*2 + toothpaste*5 == 100):
                    print('可买洗发水%d瓶,香皂%d盒,牙刷%d把' % (shampoo,soap,toothpaste))
                toothpaste += 1
            soap += 1
        shampoo += 1
    

    运行结果

    可买洗发水1瓶,香皂30盒,牙刷5把
    可买洗发水1瓶,香皂35盒,牙刷3把
    可买洗发水1瓶,香皂40盒,牙刷1把
    可买洗发水2瓶,香皂25盒,牙刷4把
    可买洗发水2瓶,香皂30盒,牙刷2把
    可买洗发水3瓶,香皂15盒,牙刷5把
    可买洗发水3瓶,香皂20盒,牙刷3把
    可买洗发水3瓶,香皂25盒,牙刷1把
    可买洗发水4瓶,香皂10盒,牙刷4把
    可买洗发水4瓶,香皂15盒,牙刷2把
    可买洗发水5瓶,香皂5盒,牙刷3把
    可买洗发水5瓶,香皂10盒,牙刷1把
    [Finished in 3.1s]
    

    相关文章

      网友评论

          本文标题:day4-循环和分支-作业-提高

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