Discuss / Python / 作业 方法一

作业 方法一

Topic source

def hui(n):

    s = str(n)

    i=0

    while i <len(s):

        if s[i] == s[len(s)-1-i]:

            i=i+1

        else:

           return False

    return True

o=filter(hui,range(1,1000))

for i in range(10):

next(o)

方法二:这个没有用str函数,全程摘数字。。。

def length(a):  #数字长度

    i=1

    n=1

    while True:

        i=i*10

        n=n+1

        if a//i == 0:

            return n-1

def findhui(a):  

    L=length(a)

    B=[]

    for i in range(L-1,-1,-1):

            B.append(  (a-a//(10**(i+1))*(10**(i+1)) )//(10**i) )

    M=len(B)

    i=0

    while i<M//2:

        if B[0+i] ==B[M-1-i]:

            i=i+1

        else :

            return False

    return True

    pass 

list(filter(findhui, range(1000)))


  • 1

Reply