2

刷题继续

昨天和大家分享了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 3.6+,如果你用的是Python 2.7版本,绝大多数不同就体现在以下3点:

  • raw_input()在Python3中是input()
  • print需要加括号
  • fstring可以换成.format(),或者%s,%d

谢谢大家,我们下期见!希望各位朋友不要吝啬,把每道题的更高效的解法写在评论里,我们一起进步!!!


alpha94511
549 声望996 粉丝

Python爱好者, 前端开发厌恶者