题目7:(斐波那契数列)
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39
# -*- coding:utf-8 -*-
class Solution:
def Fibonacci(self, n):
a, b = 0,1
for i in range(n):
a,b=b,a+b
return a
题目8:(跳台阶)
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
# -*- coding:utf-8 -*-
class Solution:
def jumpFloor(self, number):
a, b = 0,1
for i in range(number+1):
a,b=b,a+b
return a
题目9:(变态跳台阶)
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
# -*- coding:utf-8 -*-
class Solution:
def jumpFloorII(self, number):
if number < 3:
return number
a = [0,1,2]
for i in range(3, number+1):
a.append(sum(a)+1)
return a[number]
题目10:(矩形覆盖)
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
# -*- coding:utf-8 -*-
class Solution:
def rectCover(self,number):
# write code here
res = [0,1,2]
while len(res)<=number:
res.append(res[-1]+res[-2])
return res[number]
题目11:(二进制中1的个数)
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示
# -*- coding:utf-8 -*-
class Solution:
def NumberOf1(self, n):
if n < 0:
s = bin(n & 0xffffffff)
else:
s = bin(n)
return s.count('1')
题目12:(数值的整数次方)
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
# -*- coding:utf-8 -*-
class Solution:
def Power(self, base, exponent):
a = 1
if exponent == 0:
return 1
elif exponent>0:
for i in range(exponent):
a = a*base
return a
elif exponent<0:
for i in range(-exponent):
a = a*base
return 1/a
或者:
class Solution:
def Power(self, base, exponent):
return base**exponent