昨天和大家分享了51-60题,今天继续来刷61~70题
Question 61:
The Fibonacci Sequence is computed based on the following formula:
f(n)=0 if n=0
f(n)=1 if n=1
f(n)=f(n-1)+f(n-2) if n>1
Please write a program to compute the value of f(n) with a given n input by console.*Example:
If the following n is given as input to the program:*
7
Then, the output of the program should be:
13
解法一
def f(n):
if n < 2:
return n
return f(n-1) + f(n-2)
n = int(input())
print(f(n))
Question 62:
The Fibonacci Sequence is computed based on the following formula:
f(n)=0 if n=0
f(n)=1 if n=1
f(n)=f(n-1)+f(n-2) if n>1
Please write a program to compute the value of f(n) with a given n input by console.*Example:
If the following n is given as input to the program:*
7
Then, the output of the program should be:
0,1,1,2,3,5,8,13
解法一
def f(n):
if n < 2:
fibo[n] = n
return fibo[n]
fibo[n] = f(n-1) + f(n-2)
return fibo[n]
n = int(input())
fibo = [0]*(n+1) # initialize a list of size (n+1)
f(n)
fibo = [str(i) for i in fibo]
ans = ",".join(fibo)
print(ans)
Question 63:
Please write a program using generator to print the even numbers between 0 and n in comma separated form while n is input by console.*Example:
If the following n is given as input to the program:*
10
Then, the output of the program should be:
0,2,4,6,8,10
In case of input data being supplied to the question, it should be assumed to be a console input.
解法一
def get_evennumbers(x):
for x in range(0,x+1):
if x%2==0:
yield x
input_number=int(input())
values = []
for i in get_evennumbers(input_number):
values.append(str(i))
print(",".join(values))
Question 64:
Please write a program using generator to print the numbers which can be divisible by 5 and 7 between 0 and n in comma separated form while n is input by console.*Example:
If the following n is given as input to the program:*
100
Then, the output of the program should be:
0,35,70
解法一
def devision_seven_five(x):
for x in range(0,x+1):
if x%35==0:
yield x
input_number=int(input())
values = []
resp = [str(i) for i in devision_seven_five(input_number)]
print(",".join(resp))
Question 65:
Please write assert statements to verify that every number in the list [2,4,6,8] is even.
解法一
data = [2,4,5,6]
for i in data:
assert i%2 == 0, "{} is not an even number".format(i)
Question 66:
Please write a program which accepts basic mathematic expression from console and print the evaluation result.*Example:
If the following n is given as input to the program:*
35 + 3
Then, the output of the program should be:
38
解法一
expression = input()
ans = eval(expression)
print(ans)
Question 67:
Please write a binary search function which searches an item in a sorted list. The function should return the index of element to be searched in the list.
解法一
from bisect import bisect_right
def BinarySearch(a, x):
i = bisect_right(a, x)
if i != len(a)+1 and a[i-1] == x:
return (i-1)
else:
return -1
lst = [1,2,4,5,6,7,8]
x = int(input())
res = BinarySearch(lst, x)
if res == -1:
print(x, "is absent")
else:
print("Last occurrence of", x, "is present at", res)
Question 68:
Please generate a random float where the value is between 10 and 100 using Python module.
解法一
import random
rand_num = random.uniform(10,100)
print(rand_num)
解法二
import random
print(random.random()*100)
Question 69:
Please generate a random float where the value is between 5 and 95 using Python module.
解法一
import random
print(random.random()*100-5)
解法二
import random rand_num = random.uniform(5,95)
print(rand_num)
Question 70:
Please write a program to output a random even number between 0 and 10 inclusive using random module and list comprehension.
解法一
import random
resp = [i for i in range(2,11,2)]
print(random.choice(resp))
解法二
import random
even_numbers = [x for x in range(0,11) if x%2==0]
print(random.choice(even_numbers))
这十道题的代码在我的github上,如果大家想看一下每道题的输出结果,可以点击以下链接下载:
- Python 61-70题
我的运行环境Python 3.6+,如果你用的是Python 2.7版本,绝大多数不同就体现在以下3点:
- raw_input()在Python3中是input()
- print需要加括号
- fstring可以换成.format(),或者%s,%d
谢谢大家,我们下期见!希望各位朋友不要吝啬,把每道题的更高效的解法写在评论里,我们一起进步!!!