day3-循环作业附加部分

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

age = int(input('请输入年龄:'))
if age <= 0 or age > 150:
    print('年龄有误')
elif age < 5:
    print('儿童')
elif age <= 18:
    print('未成年')
elif age <= 25:
    print('青壮年')
elif age <= 50:
    print('中年')
else:
    print('老年')

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

sum = 1
for x in range(1,6):
    sum *= x
print(sum)



120

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

sum = 0
for x in range(1, 21):
    num = x
    for y in range(x-1,0,-1):
         num *= y
    sum += num
print(sum)

sum = 0
x = 1
for i in range(1,21):
    x = x * i
    sum = sum + x
print(sum)


2561327494111820313
2561327494111820313

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

sum = 0
x = 1
for i in range(1,21):
    x = x * i
    sum = sum + 1/x
print(sum)


1.7182818284590455

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

sum = 0
while True:
    n = int(input('请输入一个数:'))
    if n !=0:
        sum +=n
    else:
        break
print(sum)

6.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如

2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。

sum1 = 0
a = input('输入数字:')
count = int(input('输入次数:'))
ret = []
for i in range(1,count+1):
    ret.append(int(a*i))
    print(ret[i-1])
for x in ret:
    sum1 += x
print(sum1)   

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


a = int(input('输入数:'))
b = int(input('输入数:'))
c = int(input('输入数:'))
if a < b :
    a ,b = b, a
if a < c:
    a , c = c, a
if b < c:
    b , c = c, b
print(a,b,c)

8.控制台输出三角形

a.根据n的值的不同,输出相应的形状
n = 5时             n = 4
*****               ****
****                ***
***                 **
**                  *
*

n = int(input('输入数:'))
if n >= 1:
       for x in range(1,n+1):
             print((n-x) *'*')
else:
       print('不满足要求')
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5               n = 7
  *                    *
 ***                  ***
*****                *****
                    *******

n = int(input('输入数:'))
if n >= 1 and n % 2 !=0:
    for x in range(1,n+1,2):
        for i in range(1,n+1-x,2):
            w = ' '
            print(w,end="")
        print(x *'*')
else:
    print('输入有错')

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

for i in range(1,10):
    print('\r')
    for j in range(1,i+1):
        print(j,'X',i,'=',i*j,end=' ')




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担,问有大,中,小马各几匹?


for x in range(1,101):
    for y in range(1,101-x):
        z = 100 - x-y
        if 3 * x + 2 * y + 0.5 * z == 100:
            print(x,y,z)


2 30 68
5 25 70
8 20 72
11 15 74
14 10 76
17 5 78

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

for x in range(1, 20):                      # 从1开始买公鸡,不包括20
  for y in range(1, 33):                  # 从1开始买母鸡,不包括33
      z = 100 - x - y                     # 计算剩余要买多少个小鸡,小鸡的个数要满足3的倍数
      if (z%3 == 0) and (5*x + 3*y + z/3 == 100):     # 判断买的计划是否符合条件
          print('公鸡:' x,母鸡:',y, '小鸡:'z')
公鸡:4 母鸡:18 小鸡:78
公鸡:8 母鸡:11 小鸡:81
公鸡:12 母鸡:4 小鸡:84

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


for x in range(1, 7):
    for y in range(1, 51):
        for z in range(1, 21):
            if 15*x + 2*y + 5*z == 100:
                print(x,y,z)


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 5 12
2 10 10
2 15 8
2 20 6
2 25 4
2 30 2
3 5 9
3 10 7
3 15 5
3 20 3
3 25 1
4 5 6
4 10 4
4 15 2
5 5 3
5 10 1

你可能感兴趣的:(day3-循环作业附加部分)