用python实现的小算法

一、求1-100的和:

方法1:阶层

def f(n):
    if n==1:
        return 1
    else:
        return n+f(n-1)
print f(100)

方法2:

a=0
for i in range(1,101):
    a=a+i
print a

方法3:

a=[]
for i in range(1,101):
    a.append(i)
print sum(a)

二、实现冒泡排序

方法1:

a=[2,1,4,5,6,3,1,8,9,0,0,6]
b=len(a)-1
while b>=0:
    for i in range(b):
        if a[i]>a[i+1]:
            a[i],a[i+1]=a[i+1],a[i]
    b=b-1
print(a)

方法2:

a=[2,3,4,2,4,5,5,6,5,5,7,8,5]
for j in range(len(a)-1,0,-1):
    for i in range(0,j):
        if a[i]>a[i+1]:
            a[i],a[i+1]=a[i+1],a[i]
print a

三、去除重复项:

方法1:

a=[2,3,4,2,4,5,5,6,5,5,7,8,5]
b=[]
for i in a:
    if i not in b:
        b.append(i)
print b

方法2:

print(set(a))

扫描二维码关注公众号,回复: 3861779 查看本文章

四、求一个数的因子:

number=[]
x=9
for y in range(1,x):
    if x%y ==0:
        number.append(y)
print(number)

五、求某个数各个位数之和:

x=1993
sum=0
for y in str(x):
    sum+=int(y)
print(sum)

六、求x的n次方(n为整数)

def power(x,n):
    if n>0:
        s=x
        while n>1:
            s=s*x
            n=n-1
        return s
    elif n==0:
        s=1
        return s

    else:
        s=1.0/x
        while -n>1:
            s=s*(1.0/x)
            n=n+1
        return s

七,打印这样一个数列【0,1,2,3,5,8,13,21 ...】:

def ff(n):

    def f(x):

        if x == 0:

            return 0

        elif x == 1:

            return 1

        else:

            return f(x - 1) + f(x- 2)

    a = f(n)

    l = []

    for i in range(n):

        l.append(f(i))

    print(l)

猜你喜欢

转载自blog.csdn.net/sunflowerph/article/details/81298983