python编程题-1

1. 斐波拉契数列:这个数列从第三项开始,每一项都等于前两项之和

方法1:

def Fibonacci(m):
    a = 1
    b = 1
    for i in range(m):
        i=a
        a, b = b, a + b
    print(i)
n=int(input(''))
Fibonacci(n)

方法2:

def fbnq(n):
    if n <=1:
        return n
    else:
        return fbnq(n-1)+fbnq(n-2)
n=int(input(""))
print(fbnq(n))

2.求两个数的最大公约数。

def hcf(a,b):
    x = a % b
    while (x != 0):
        a = b
        b = x
        x = a % b
    return b

num1=int(input(""))
num2=int(input(""))
print(hcf(num1,num2))

3求两个数的最小公倍数。

def hcf(a,b):
    x = a % b
    while (x != 0):
        a = b
        b = x
        x = a % b
    return b
def lcm(a,b):
    return int(a*b/hcf(a,b))
num1=int(input(""))
num2=int(input(""))
print(lcm(num1,num2))

4求阶乘。

def fact(n):
    if n == 1:
        return n
    return n*fact(n-1)

n=int(input(""))
print(fact(n))

5冒泡排序。

题目内容:

冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

已知输入为一个列表,列表中的元素都为整数,我们定义冒泡排序函数为bubbleSort,将列表中的元素按从小到大进行排序后得到一个新的列表并输出

def bubbleSort(alist):
    alist2 = []
    for i in range(len(alist)):
        j = min(alist)
        del alist[alist.index(j)]
        alist2.append(j)
    return alist2
alist=list(map(int,input().split()))
print(bubbleSort(alist))
def bubbleSort(arr):
    n = len(arr)
    # 遍历所有数组元素
    for i in range(n):
        for j in range(0, n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
    return arr

alist=list(map(int,input().split()))
print(bubbleSort(alist))

6列表元素筛选

题目内容:

已知输入为一个列表,列表中的元素都为整数,我们定义元素筛选函数为foo,功能是检查获取传入列表对象的所有奇数位索引(注意列表的索引是从0开始的)对应的元素,并将其作为新列表返回给调用者

def foo(alist):
    blist = []
    for i in range(len(alist)):
        if i%2!=0:
            blist.append(alist[i])
    return blist


alist=list(map(int,input().split()))
print(foo(alist))


猜你喜欢

转载自blog.csdn.net/weixin_43866812/article/details/105691729