Python3-练习题(穷举,递推,排序,)

题目:求s = a + aa + aaa + aaaa + aa…a的值,其中a是一个数字。 5+55+555+5555+55555

sum=0
a=int(input('请输入数字a:'))
b=a
for i in range(1,a+1):
    print(b,end=' ')
    sum=sum+b
    b=b+a*10**i
print('\n'+str(sum))

也可先用字符串的组合先将每个数得出,再转化为数字求和

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

high=100
s=0
sum=0
for i in range(3):
    s,high=high+high/2,high/2   #画出草图思路显然
    sum=sum+s
sum=sum-high
print(sum)

题目:两个乒乓球队进行比赛,各出三人。甲队为1,2,3三人,乙队为4,5,6三人。已抽签决定比赛名单, 有人向队员打听比赛的名单,1说他不和4比,3说他不和4,6比,请编程序找出三队赛手的名单.

a=str(456)
for i in a:
    if (i!='4'):
        for j in a:
            if (j!=i):
                for k in a:
                    if (k!= i and k!=j and k!='4' and k!='6'):
                        print('1vs%s,2vs%s,3vs%s' % (i,j,k))

排序时,先固定了甲队1 2 3 的位置,再对4 5 6排序

题目:打印出如下图案(菱形)。

   *
  ***
 *****
*******
 *****
  ***
   *
hang=int(input('请输入行数(奇数):'))
n=int((hang+1)/2)
for i in range(1,hang+1):
    if (i<n):
        print(' '*(n-i)+'*'*(2*i-1))
    if (i==n):
        print('*'*hang)
    if (i>n):
        print(' '*(i-n)+'*'*(hang-2*(i-n)))

题目:字符串反转,如将字符串"www.runoob.com"反转为"moc.boonur.www"。

a=str(input('请输入(以www.runoob.com为例):'))
n=len(a)
b=''
for i in range(n):
    x=a[n-i-1]
    b=b+x
print(b)

直接将字符串从最后一位截取依次不换行打印亦可:

a='www.runoob.com'
for i in range(len(a)-1,-1,-1):
    print(a[i],end='')

猜你喜欢

转载自blog.csdn.net/qq_38770048/article/details/89403152