python小练习16-20

# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
from functools import reduce
a, n =int(input('请输入两个整数:')), int(input())
list1 = []
for i in range(1, n + 1):
    list1.append(int('{}'.format(a) * i))
    print(list1)
s = reduce(lambda x, y:x + y, list1)
print(s)
# 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数
for i in range(1,1000):
    sum = 0
    for j in range(1, i):
        if i % j == 0:
            sum += j
    if sum == i:
        print(i)

# 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
n = 10
height = 100
lenght = 100
for i in range(1, n):
    a1 = (height * 2) / (2 ** i)
    lenght += a1
tenth = 100 /(2 ** n)
print(lenght)
print(tenth)
# 猴子吃桃问题:
# 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
# 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
# 以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
n = 1
for i in range(1, 10):
    n = (n + 1) * 2
print(n)
# 两个乒乓球队进行比赛,各出三人。
# 甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。
# 有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单
for a in ['x', 'y', 'z']:
    for b in ['x', 'y', 'z']:
        for c in ['x', 'y', 'z']:
            if c != 'x' and c != 'z' and a != 'x' and a != b and a != c and b != c:
                print(a, b, c)

猜你喜欢

转载自blog.csdn.net/weixin_43488626/article/details/84294584