面试常问问题——常问小代码
1、斐波那契数列(两个元素的和确定下一个数)
1 # 1,1,2,3,5,8,13,21,34,55,89...... 2 # 方法一:递归 3 def feb(n): 4 if n == 1 or n == 2: 5 return 1 6 else: 7 return feb(n-1)+feb(n-2) 8 n = 8 9 print(feb(n)) 10 11 12 # 方法二:循环 13 x,y = 0,0 14 n = 8 15 for i in range(0,n+1): 16 if i == 1 or i == 2: 17 x,y = 1,1 18 else: 19 x,y = y,x+y 20 print(y)
2、冒泡排序
1 def bubble_sort(arr): 2 n = len(arr) 3 for i in range(n): 4 for j in range(n-i-1): 5 if arr[j] > arr[j+1]: 6 arr[j], arr[j+1] = arr[j+1], arr[j] 7 return arr 8 9 arr = [5, 69, 12, 1, 66, 85, 21] 10 print('待排序的数组为:', arr) 11 print('从小到大排序后结果为:', bubble_sort(arr))