作业003:分支与循环2

2019-11-08  本文已影响0人  yydafx
1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
age = int(input('请输入年龄:'))
if age < 0 and age > 150:
    print('别闹')
elif age < 12:
    print('童年')
elif age < 18:
    print('骚年')
elif age < 25:
    print('青年')
elif age < 50:
    print('壮年')
else:
    print('得, 老了')
2.计算5的阶乘 5!的结果是
fac = 1
for i in range(1, 6):
    fac *= i
print('5的阶乘是:',fac)

第2题演示

5的阶乘是: 120
3.求1+2!+3!+...+20!的和。
fac = 1
sum1 = 0
for i in range(1, 21):
    fac *= i
    sum1 += fac
print('1+2!+3!+...+20!的和:',sum1)

第3题演示

1+2!+3!+...+20!的和: 2561327494111820313
4.计算 1+1/2!+1/3!+1/4!+...1/20!=?
sum1 = 0
fac = 1
for i in range(1, 21):
    fac *= i
    sum1 += 1/fac
print('1+1/2!+1/3!+1/4!+...1/20!的值为:', sum1)

第4题演示

1+1/2!+1/3!+1/4!+...1/20!的值为: 1.7182818284590455
5.循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。
sum1 = 0
while True:
    num = int(input('请输入任意整数(输入0结束循环):'))
    if num == 0:
        break
    else:
        sum1 += num
print('最终结果为:',sum1)

第5题演示:

请输入任意整数(输入0结束循环):2
请输入任意整数(输入0结束循环):3
请输入任意整数(输入0结束循环):4
请输入任意整数(输入0结束循环):5
请输入任意整数(输入0结束循环):0
最终结果为: 14
6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
a = int(input('请输入需要相加的数字(正整数):'))
count = int(input('请输入数字需要相加多少次(正整数):'))
sum1 =  sum2 = x = 0
for i in range(count):
    x = a * 10 ** i
    sum1 += x
    # print(sum1)
    sum2 += sum1
print(sum2)

第6题答案

请输入需要相加的数字(正整数):4
请输入数字需要相加多少次(正整数):3
492
7.输入三个整数x,y,z,请把这三个数由小到大输出。
x = int(input('请输入整数:'))
y = int(input('请输入整数:'))
z = int(input('请输入整数:'))
if x > y:
    x, y = y, x
if x > z:
    x, z = z, x
if y > z:
    y, z = z, y
print(x, '<', y, '<', z)

第7题演示

请输入整数:3
请输入整数:5
请输入整数:4
3 < 4 < 5
8.控制台输出三角形
a.根据n的值的不同,输出相应的形状
n = 5时             n = 4
*****               ****
****                ***
***                 **
**                  *
*

#演示:
num = int(input('请输入正整数:'))
for i in range(0, num):
    for j in range(i + 1, num + 1):
        print('*', end='')
    print("")



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

# 演示
num = int(input('请输入奇数的正整数:'))
for i in range(1, num - 1):
    # 循环控制空格的个数
    for _ in range(num - i):
        print(' ', end='')
    # 循环输出星星
    for _ in range(2 * i - 1):
        print('*', end='')
    print()
  9.输出9*9口诀。 1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
for i in range(1, 10):
    for j in range(1, i + 1):
        print(j, '*', i, '=', i * j, end='   ')
    print()

第9题演示

1 * 1 = 1   
1 * 2 = 2   2 * 2 = 4   
1 * 3 = 3   2 * 3 = 6   3 * 3 = 9   
1 * 4 = 4   2 * 4 = 8   3 * 4 = 12   4 * 4 = 16   
1 * 5 = 5   2 * 5 = 10   3 * 5 = 15   4 * 5 = 20   5 * 5 = 25   
1 * 6 = 6   2 * 6 = 12   3 * 6 = 18   4 * 6 = 24   5 * 6 = 30   6 * 6 = 36   
1 * 7 = 7   2 * 7 = 14   3 * 7 = 21   4 * 7 = 28   5 * 7 = 35   6 * 7 = 42   7 * 7 = 49   
1 * 8 = 8   2 * 8 = 16   3 * 8 = 24   4 * 8 = 32   5 * 8 = 40   6 * 8 = 48   7 * 8 = 56   8 * 8 = 64   
1 * 9 = 9   2 * 9 = 18   3 * 9 = 27   4 * 9 = 36   5 * 9 = 45   6 * 9 = 54   7 * 9 = 63   8 * 9 = 72   9 * 9 = 81 
10.这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
'''
3 * x + 2 * y + z / 2 = 100
2x + 2y + 2z = 200
5 * x + 3 * y == 100
'''

for x in range(100):
    for y in range(100):
        if 5 * x + 3 * y == 100:
            z = 100 - x - y
            print('大马有%d匹,中马有%d匹, 小马有%d匹'% (x, y, z))

第10题演示

大马有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只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。
'''
公鸡 5   母鸡 3     雏鸡 1/3
  x         y         z
  x+y+z=100
  15x+9y+z=300
7*x+4*y=100
'''
for x in range(100):
    for y in range(100):
        if 7 * x + 4 * y == 100:
            z = 100 - x - y
            print('公鸡有%d只,母鸡有%d只, 雏鸡有%d只'% (x, y, z))

第11题演示

公鸡有0只,母鸡有25只, 雏鸡有75只
公鸡有4只,母鸡有18只, 雏鸡有78只
公鸡有8只,母鸡有11只, 雏鸡有81只
公鸡有12只,母鸡有4只, 雏鸡有84只
12.小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
'''
洗发水 15  香皂 2    牙刷  5
  x         y           z 
  15*x + 2*y + 5*z == 100
'''
count = 0
for x in range(1, 8):
    for y in range(1, 51):
        for z in range(1, 21):
            if 15*x + 2*y + 5*z == 100:
                # print(x,y,z)
                count += 1
print('总共有%d种组合方式'%count)

第12题演示

总共有24种组合方式
上一篇下一篇

猜你喜欢

热点阅读