美文网首页
The first week 周末作业 2018-12-30

The first week 周末作业 2018-12-30

作者: 绝世小丑 | 来源:发表于2019-01-02 17:15 被阅读0次

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

    age = int(input('请输入年龄:'))
    if age < 12:
        print('这个人还是儿童。')
    elif age < 18:
        print('这个人还未成年。')
    elif age < 30:
        print('这个人已经成年。')
    elif age < 55:
        print('这个人到了青壮年。')
    else:
        print('这个人已经老年。')
    

    运行结果:

    请输入年龄:45
    这个人到了青壮年。
    

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

    i = 1
    jie_cheng = 1
    while i <= 5:
        jie_cheng *= i
        i += 1
    print(' 5 的阶乘为:', jie_cheng)
    

    运行结果:

     5 的阶乘为: 120
    

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

    i = 1
    jie_cheng = 1
    sum1 = 0
    while i <= 20:
        jie_cheng *= i
        sum1 += jie_cheng
        i += 1
    print('1+2!+3!+...+20!的和为:', sum1)
    

    运行结果:

    1+2!+3!+...+20!的和为: 2561327494111820313
    

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

    i = 1
    jie_cheng = 1
    fen_shu = 0
    while i <= 20:
        jie_cheng *= i
        fen_shu += 1 / jie_cheng
        i += 1
    print('1+1/2!+1/3!+1/4!+...1/20!的和为:', fen_shu)
    

    运行结果:

    1+1/2!+1/3!+1/4!+...1/20!的和为: 1.7182818284590455
    

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

    sum1 = 0
    num1 = int(input('请输入数字(输入 0 为结束):'))
    if num1 > 0:
        sum1 += num1
    while num1 != 0:
        num1 = int(input('请输入数字(输入 0 为结束):'))
        if num1 > 0:
            sum1 += num1
    print('大于0的数字累加和为:', sum1)
    

    运行结果:

    请输入数字(输入 0 为结束):12
    请输入数字(输入 0 为结束):-12
    请输入数字(输入 0 为结束):23
    请输入数字(输入 0 为结束):-23
    请输入数字(输入 0 为结束):0
    大于0的数字累加和为: 35
    

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

    a = int(input('请输入一个值:'))
    n = int(input('请输入要有几个数相加:'))
    i = 0
    sum1 = 0
    num1 = 0
    while i < n:
        num1 += a * 10 ** i
        sum1 += num1
        i += 1
        print('第一个数为:', num1)
    print('这几个数的和为:', sum1)
    

    运行结果:

    请输入一个值:3
    请输入要有几个数相加:4
    第一个数为: 3
    第一个数为: 33
    第一个数为: 333
    第一个数为: 3333
    这几个数的和为: 3702
    

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

    list1 = []
    x = int(input('请输入 x 的值:'))
    list1.append(x)
    y = int(input('请输入 y 的值:'))
    list1.append(y)
    z = int(input('请输入 z 的值:'))
    list1.append(z)
    min1 = min(list1)
    list1.remove(min1)
    max1 = max(list1)
    list1.remove(max1)
    char1 = list1[0]
    print('这三个数由小到大输出为:', min1, char1, max1)
    

    运行结果:

    请输入 x 的值:1
    请输入 y 的值:3
    请输入 z 的值:5
    这三个数由小到大输出为: 1 3 5
    

    8.控制台输出三角形

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

    
        n = 5时             n = 4   
        *****               ****  
        ****                ***  
        ***                 **
        **                  *
        *
    

    b.根据n的值的不同,输出相应的形状(n为奇数)

        n = 5               n = 7
          *                    *
         ***                  ***
        *****                *****
                            *******
    

    解:

    # a.
    n = int(input('请输入一个 n 值:'))
    i = 0
    j = n
    while i < n:
        while j > 0:
            print('*' * j)
            j -= 1
        i += 1
    
    # b.
    n = int(input('请输入一个 n 值(奇数):'))
    i = 1
    j = n
    while i < n:
        while j > 0:
            if i & 1 == 1:
                k = int(j / 2)
                print(' ' * k, '*' * i)
            i += 1
            j -= 1
    

    运行结果:

    请输入一个 n 值:4
    ****
    ***
    **
    *
    请输入一个 n 值(奇数):9
         *
        ***
       *****
      *******
     *********
    

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

    i = 1
    j = 1
    while i <= 9:
        j = i
        while i <= j <= 9:
            print('%d * %d = ' % (i, j), i * j)
            j += 1
        i += 1
    

    运行结果:

    1 * 1 =  1
    1 * 2 =  2
    1 * 3 =  3
    1 * 4 =  4
    1 * 5 =  5
    1 * 6 =  6
    1 * 7 =  7
    1 * 8 =  8
    1 * 9 =  9
    2 * 2 =  4
    2 * 3 =  6
    2 * 4 =  8
    2 * 5 =  10
    2 * 6 =  12
    2 * 7 =  14
    2 * 8 =  16
    2 * 9 =  18
    3 * 3 =  9
    3 * 4 =  12
    3 * 5 =  15
    3 * 6 =  18
    3 * 7 =  21
    3 * 8 =  24
    3 * 9 =  27
    4 * 4 =  16
    4 * 5 =  20
    4 * 6 =  24
    4 * 7 =  28
    4 * 8 =  32
    4 * 9 =  36
    5 * 5 =  25
    5 * 6 =  30
    5 * 7 =  35
    5 * 8 =  40
    5 * 9 =  45
    6 * 6 =  36
    6 * 7 =  42
    6 * 8 =  48
    6 * 9 =  54
    7 * 7 =  49
    7 * 8 =  56
    7 * 9 =  63
    8 * 8 =  64
    8 * 9 =  72
    9 * 9 =  81
    

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

    da_ma = 1
    zho_ma = 1
    xia_ma = 1
    while da_ma * 3 <= 100:
        if da_ma * 3 + zho_ma * 2 + xia_ma / 2 != 100:
            da_ma += 1
        else:
            break
        while zho_ma * 2 <= 100:
            if da_ma * 3 + zho_ma * 2 + xia_ma / 2 != 100:
                zho_ma += 1
            else:
                break
            while xia_ma / 2 <= 100:
                if da_ma * 3 + zho_ma * 2 + xia_ma / 2 != 100:
                    xia_ma += 1
                else:
                    break
    print('大马有 %d 只;中马有 %d 只;小马有 % d 只。' % (da_ma, zho_ma, xia_ma))
    

    运行结果:

    大马有 2 只;中马有 2 只;小马有  180 只。
    

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

    gong_ji = 1
    mu_ji = 1
    chu_ji = 1
    while gong_ji * 5 <= 100:
        if gong_ji * 5 + mu_ji * 3 + chu_ji != 100:
            gong_ji += 1
        else:
            break
        while mu_ji * 2 <= 100:
            if gong_ji * 5 + mu_ji * 3 + chu_ji != 100:
                mu_ji += 1
            else:
                break
            while chu_ji / 2 <= 100:
                if gong_ji * 5 + mu_ji * 3 + chu_ji != 100:
                    chu_ji += 1
                else:
                    break
    print('公鸡可以买 %d 只;母鸡可以买 %d 只;小鸡可以买 % d 只。' % (gong_ji, mu_ji, chu_ji))
    

    运行结果:

    公鸡可以买 2 只;母鸡可以买 2 只;小鸡可以买  84 只。
    

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

    # 用 while 循环做
    xfs = 1
    xz = 1
    ys = 1
    num1 = 0
    print('可以有的组合为:')
    while xfs * 15 <= 100:
        while xz * 2 <= 100:
            while ys * 5 <= 100:
                if xfs * 15 + xz * 2 + ys * 5 == 100:
                    print('洗发水可以买 %d 瓶;香皂可以买 %d 个;牙刷可以买 % d 只。' % (xfs, xz, ys))
                    num1 += 1
                else:
                    ys += 1
            xz += 1
        xfs += 1
    print('一共有 %d 种组合。' % num1)
    
    # 用 for 循环做:
    num1 = 0
    print('可以有的组合为:')
    for xfs in range(0, 100 // 15 + 1):
        for xz in range(0, 100//2 + 1):
            for ys in range(0, 100 // 5 + 1):
                if 15 * xfs + 2 * xz + 5 * ys == 100:
                    print('洗发水可以买 %d 瓶;香皂可以买 %d 个;牙刷可以买 % d 只。' % (xfs, xz, ys))
                    num1 += 1
    print('一共有%d种组合' % num1)
    

    运行结果:

    可以有的组合为:
    洗发水可以买 0 瓶;香皂可以买 0 个;牙刷可以买  20 只。
    洗发水可以买 0 瓶;香皂可以买 5 个;牙刷可以买  18 只。
    洗发水可以买 0 瓶;香皂可以买 10 个;牙刷可以买  16 只。
    洗发水可以买 0 瓶;香皂可以买 15 个;牙刷可以买  14 只。
    洗发水可以买 0 瓶;香皂可以买 20 个;牙刷可以买  12 只。
    洗发水可以买 0 瓶;香皂可以买 25 个;牙刷可以买  10 只。
    洗发水可以买 0 瓶;香皂可以买 30 个;牙刷可以买  8 只。
    洗发水可以买 0 瓶;香皂可以买 35 个;牙刷可以买  6 只。
    洗发水可以买 0 瓶;香皂可以买 40 个;牙刷可以买  4 只。
    洗发水可以买 0 瓶;香皂可以买 45 个;牙刷可以买  2 只。
    洗发水可以买 0 瓶;香皂可以买 50 个;牙刷可以买  0 只。
    洗发水可以买 1 瓶;香皂可以买 0 个;牙刷可以买  17 只。
    洗发水可以买 1 瓶;香皂可以买 5 个;牙刷可以买  15 只。
    洗发水可以买 1 瓶;香皂可以买 10 个;牙刷可以买  13 只。
    洗发水可以买 1 瓶;香皂可以买 15 个;牙刷可以买  11 只。
    洗发水可以买 1 瓶;香皂可以买 20 个;牙刷可以买  9 只。
    洗发水可以买 1 瓶;香皂可以买 25 个;牙刷可以买  7 只。
    洗发水可以买 1 瓶;香皂可以买 30 个;牙刷可以买  5 只。
    洗发水可以买 1 瓶;香皂可以买 35 个;牙刷可以买  3 只。
    洗发水可以买 1 瓶;香皂可以买 40 个;牙刷可以买  1 只。
    洗发水可以买 2 瓶;香皂可以买 0 个;牙刷可以买  14 只。
    洗发水可以买 2 瓶;香皂可以买 5 个;牙刷可以买  12 只。
    洗发水可以买 2 瓶;香皂可以买 10 个;牙刷可以买  10 只。
    洗发水可以买 2 瓶;香皂可以买 15 个;牙刷可以买  8 只。
    洗发水可以买 2 瓶;香皂可以买 20 个;牙刷可以买  6 只。
    洗发水可以买 2 瓶;香皂可以买 25 个;牙刷可以买  4 只。
    洗发水可以买 2 瓶;香皂可以买 30 个;牙刷可以买  2 只。
    洗发水可以买 2 瓶;香皂可以买 35 个;牙刷可以买  0 只。
    洗发水可以买 3 瓶;香皂可以买 0 个;牙刷可以买  11 只。
    洗发水可以买 3 瓶;香皂可以买 5 个;牙刷可以买  9 只。
    洗发水可以买 3 瓶;香皂可以买 10 个;牙刷可以买  7 只。
    洗发水可以买 3 瓶;香皂可以买 15 个;牙刷可以买  5 只。
    洗发水可以买 3 瓶;香皂可以买 20 个;牙刷可以买  3 只。
    洗发水可以买 3 瓶;香皂可以买 25 个;牙刷可以买  1 只。
    洗发水可以买 4 瓶;香皂可以买 0 个;牙刷可以买  8 只。
    洗发水可以买 4 瓶;香皂可以买 5 个;牙刷可以买  6 只。
    洗发水可以买 4 瓶;香皂可以买 10 个;牙刷可以买  4 只。
    洗发水可以买 4 瓶;香皂可以买 15 个;牙刷可以买  2 只。
    洗发水可以买 4 瓶;香皂可以买 20 个;牙刷可以买  0 只。
    洗发水可以买 5 瓶;香皂可以买 0 个;牙刷可以买  5 只。
    洗发水可以买 5 瓶;香皂可以买 5 个;牙刷可以买  3 只。
    洗发水可以买 5 瓶;香皂可以买 10 个;牙刷可以买  1 只。
    洗发水可以买 6 瓶;香皂可以买 0 个;牙刷可以买  2 只。
    洗发水可以买 6 瓶;香皂可以买 5 个;牙刷可以买  0 只。
    一共有 44 种组合
    

    相关文章

      网友评论

          本文标题:The first week 周末作业 2018-12-30

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