Day5-提高作业

1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)
答:设定:儿童:0-10;未成年:11-18;成年人:19-30;青壮年:30-55;老年人:55以上

age = int(input('请输入年龄:'))
if age < 0:
    print('输入错误')
elif 0<= age <= 10:
    print('儿童')
elif age <= 18:
    print('未成年')
elif age <= 30:
    print('成年人')
elif age <= 55:
    print('青壮年')
else:
    print('老年人')

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

num = int(input('请输入一个数:'))
sum1 = 1
while num > 0:
    sum1 *= num
    num -= 1
print(sum1)

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

sum1 = 1
sum2 = 0
num = int(input('请输入一个数:'))
for num in range(1,num+1):
    sum1 *= num
    num += 1
    sum2 += sum1
print(sum2)

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

sum3 = 0
sum1 = 1
num = int(input('请输入一个数:'))
for num in range(1,num+1):
    sum1 *= num
    sum2 = 1 / sum1
    sum3 += sum2
print(sum3)

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

sum1 = 0
num = int(input('请输入数字:'))
if num < 0:
    print('您输入的数字小于0.')
while num != 0:
    sum1 += num
    print(sum1)
    num = int(input('请输入数字:'))

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

sum1 = 0
a = input('请输入a的值:')
num = int(input('请输入几个数相加:'))
for num in range(1,num+1):
    sum2 = a * num
    sum1 += int(sum2)
print(sum1)

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

x = int(input('x的值为:'))
y = int(input('y的值为:'))
z = int(input('z的值为:'))
if x < y:
    if x > z:
        print(y,x,z)
    elif y > z:
        print(y,z,x)
    else:print(z,y,x)
else:
    if  y > z:
        print(x,y,z)
    elif x > z:
        print(x,z,y)
    else:print(z,x,y)

8.控制台输出三角形
a.根据n的值的不同,输出相应的形状

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

答:

n = int(input('请输入n的值'))
while n > 0:
    print(n * '*')
    n -= 1

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

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

答:

n = int(input('请输入n的值'))
m = 1
while m <= n:
    while m & 1 == 1:
        print((m * '*').center(n ,' '))
        m += 1
    m += 1

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

Day5-提高作业_第1张图片
99乘法表

答:

for i in range(1,10):
    for j in range(1,i+1):
        m = i * j
        print(str(j)+'*'+str(i)+'='+str(m),end='\t')
    print()

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

for x in range(0,101):
    for y in range(0,99-x):
        z = 100 - x - y
        if 3 * x + 2 * y + 0.5 * z == 100:
            print('有大马%d只'%(x),'有中马%d只'%(y),'有小马%d只'%(z))

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

for x in range(0,101):
    for y in range(0,99-x):
        z = 100 - x - y
        if 5 * x + 3 * y + 1 / 3 * z == 100:
            print('有公鸡%d只'%(x),'有母鸡%d只'%(y),'有雏鸡%d只'%(z))

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

for x in range(0,9):
    for y in range(0,51):
        for z in range(0,21):
            if 15 * x + 2 * y + 21 * z == 100:
                print('买%d瓶洗发水'%(x),'买%d盒香皂'%(y),'买%d把牙刷'%(z))

你可能感兴趣的:(Day5-提高作业)