• python例题21--30


    例二十一,猴子吃桃的问题:猴子第一天摘下若干个桃子,当即吃了一半,还没过瘾,
    又多吃了一个第二天早上有将剩下的桃子吃了一半,又多吃一个,以后每天早上都吃前一天的一半零一个。
    到十天早上再想吃时就剩下一个。求第一天共摘了多少个?
    x2=1
    for day in range (9,0,-1):
    x1=(x2+1)*2
    x2=x1
    print(x1)
    例二十二,打印菱形,
    from sys import stdout
    for i in range (4):
    for j in range (2-i+1):
    stdout.write(' ')
    for k in range (2*i+1):
    stdout.write("*")
    print()
    for i in range (3):
    for j in range (i+1):
    stdout.write(' ')
    for k in range (4-2*i+1):
    stdout.write("*")
    print()
    例二十三,两个乒乓球队进行比赛,各出三人,甲队为abc三人,已队为xyz三人,
    决定抽签决定比赛数据,a说他不和 x 比赛,c说他不和 x z 比,请编程序写出赛手名单。
    for i in range(ord("x"),ord("z")+1):
    for j in range (ord("x"),ord("z")+1):
    # print(i)
    if i !=j:
    for k in range (ord("x"),ord("z")+1):
    if (i!=k)and(j!=k):
    if (i!=ord("x"))and(k!=ord("x"))and(k!=ord("z")):
    print("order is a--%s b--%s c--%s"%(chr(i),chr(j),chr(k)))
    例二十四,有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13。。。求出这个数列前20项之和
    # 方法一
    a=2.0
    b=1.0
    s=0
    for n in range(1,21):
    s+=a/b
    t=a
    a=a+b
    b=t
    print(s)
    方法二
    b=2.0
    a=1.0
    s=0
    for n in range (1,21):
    s+=a/b
    b,a=a,a+b
    print(s)
    # 方法三
    a=2
    b=1
    l=[]
    for n in range (1,21):
    b,a=a,a+b
    l.append(a/b)
    print(sum(l))
    例二十五,求1+2!+3!+4!+...+20!的求和
    while True:
    x=int(input("输入x: "))
    n=0
    s=0
    t=1
    for n in range (1,x):
    t*=n
    s+=t
    print(s)
    方法二
    s=0
    l=range(1,21)
    def op(x):
    r=1
    for i in range (1,x+1):
    r*=i
    return r
    s=sum(map(op,l))
    print(s)
    例二十六。利用递归求阶乘!递归公式fn=fn—1*4!
    b=int(input("请输入b的值: "))
    def fact(j):
    sum=0
    if j==0:
    sum=1
    else:
    sum=j*fact(j-1)
    return sum
    for i in range(b):
    print("%d!=%d"%(i,fact(i)))
    例二十七。利用递归函数调用的方式,将其输入5个字符,以相反的顺序打印出来
    def output(s,l):

    if l==0:
    return
    print(s[l-1])
    output(s,l-1)
    s=input("输入相关信息、 ")
    l=len(s)
    output(s,l)
    例二十八,五个人坐在一起,问第五个人多少岁?他说比第四个人大2岁,问第四个人时,
    他说比第三个人大2岁,问第二个人说比第一个人大两岁,而第一个人说自己是10岁
    问第五个人多大?
    n=int(input("输入的人数 "))
    c=10
    count=1
    while count<n:
    c=2+c
    count+=1

    print("最后的人的年龄为",c)
    def age(n):#这是用递归法
    if n==1 : c=10
    else:
    c=age(n-1)+2
    return c
    print(age(5))
    例二十九,给一个不多于五位数的正数,要求:一,求出它是几位数,二,逆序打印出来】
    x=int(input("请输入一个数: "))
    a=x//10000
    b=x%10000//1000#x%10000降位次,
    c=x%1000//100
    d=x%100//10
    e=x%10
    # print(a,b,c,d,e)
    if a!=0:
    print("五位数",e,d,c,b,a)
    elif b!=0:
    print("四位数",e,d,c,b)
    elif c!=0:
    print("三位数",e,d,c)
    elif d!=0:
    print("两位数",e,d)
    else:
    print("一位数",e)
    例三十, 一个五位数判断它是否是回文数,即12321是回文数
    a=int(input("请输入一个数字: "))
    x=str(a)
    # print(x)
    flag=True
    for i in range (len(x)):
    if x[i]!=x[-i-1]:
    flag=False
    break
    if flag:
    print("%d是一个回文数"%a)
    else:
    print("%d 不是回文数"%a)

  • 相关阅读:
    未来中国最热门的十大职业排行榜
    中国金融牌照18种(内附各牌照注册条件)
    现有的一些人脸数据库
    广信科教集团
    省部级干部list
    解读Google分布式锁服务
    数学算法那些事
    细数二十世纪最伟大的十大算法
    链接分析算法之:HillTop算法
    Regex Failure
  • 原文地址:https://www.cnblogs.com/kwkk978113/p/10307021.html
Copyright © 2020-2023  润新知