6-5 Python - 0024 分数 10  全屏浏览题目 作者 樊志伟 单位 许昌学院 已知斐波那契数列中的第 i 项满足以下等式: F i = ⎩ ⎨ ⎧ 1 1 F i−1 +F i−2 i=1 i=2 i>2 根据以上等式,编写递归函数 Fib(i) 计算斐波那契数的第 i 项。 函数接口定义: int Fib(i) 其中 i 是不超过10的正整数。 裁判测试程序样例: /* 请在这里填写答案 */ i = int(input()) print(Fib(i)) 输入样例: 6 输出样例: 8 代码长度限制 16 KB 时间限制 400 ms
时间: 2024-03-20 13:42:52 浏览: 136
以下是实现 Fib 函数的 Python 代码:
```python
def Fib(i):
if i == 1 or i == 2:
return 1
else:
return Fib(i-1) + Fib(i-2)
```
该函数接收一个正整数 i,如果 i 等于 1 或 2,则返回 1,否则返回 Fib(i-1) + Fib(i-2)。这里采用了递归的方式实现斐波那契数列的计算。递归的结束条件是 i = 1 或 i = 2,此时斐波那契数列的第 i 项为 1。
相关问题
6-4 Python - 0023 分数 10  全屏浏览题目 作者 樊志伟 单位 许昌学院 统计词频 函数接口定义: def word_count(words) 其中 words 是一个列表,其中的元素为单词字符串。 函数须返回其中每个单词出现的次数,以字典的形式返回。 字典的key是单词,value是单词次数。 裁判测试程序样例: /* 请在这里填写答案 */ words = input().split(" ") result = word_count(words) for key in sorted(list(result.keys())): print(key, result[key]) 输入样例: hello world hello python hello you and me 输出样例: and 1 hello 3 me 1 python 1 world 1 you 1 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
以下是实现 word_count 函数的 Python 代码:
```python
def word_count(words):
result = {}
for word in words:
if word in result:
result[word] += 1
else:
result[word] = 1
return result
```
该函数接收一个列表 words,遍历列表中的每个单词,统计每个单词出现的次数,并将结果存储在字典 result 中,最后返回该字典。注意,当某个单词第一次出现时,需要将其初始次数设为 1。
6-6 Python - 0027 分数 15  全屏浏览题目 作者 樊志伟 单位 许昌学院 本题要求实现一个函数,可将两个相同长度列表中的元素依次相除,返回结果列表。例如[6, 12, 24] 和 [3, 4, 6] 的元素依次相除得到 2, 3, 4 ,则该函数返回 [2, 3, 4] 。该函数对异常的处理如下: 该函数应能在内部消化掉被除数为0的异常 ZeroDivisionError ,应将其结果统一为float('nan')。 对于其他的异常,统一抛出自定义的ValueError异常(包含异常信息"get_ratios called with bad arg")。 函数接口定义: def get_ratios(L1, L2) 其中 L1 和 L2 都是列表,元素类型为int。 裁判测试程序样例: # 请在这里填写答案 L1 = map(int, input().split(" ")) L2 = map(int, input().split(" ")) try: print(get_ratios(L1, L2)) except Exception as e: print(e) 输入样例1: 1 4 2 4 输出样例1: [0.5, 1.0] 输入样例2: 1 4 2 0 输出样例2: [0.5, nan] 输入样例3: 1 4 5 2 3 输出样例3: get_ratios called with bad arg 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
以下是实现 get_ratios 函数的 Python 代码:
```python
def get_ratios(L1, L2):
ratios = []
for i in range(len(L1)):
try:
ratios.append(L1[i]/float(L2[i]))
except ZeroDivisionError:
ratios.append(float('nan'))
except:
raise ValueError("get_ratios called with bad arg")
return ratios
```
该函数接收两个相同长度的列表 L1 和 L2,遍历列表中的每个元素,计算 L1[i]/L2[i] 的值,并将结果存储在 ratios 列表中。如果 L2[i] 为 0,则捕获 ZeroDivisionError 异常,并将 ratios[i] 赋值为 float('nan')。如果发生其他异常,则抛出自定义的 ValueError 异常。最后返回 ratios 列表。
阅读全文