Python有一个目标分数序列:2/1,3/2,5/3,8/5,13/8,21/13.,编写程序,求出这个数列的前20项之和。 从键盘输入一个正整数,求出是几位数,并逆序输出各位数字
时间: 2024-09-12 13:10:41 浏览: 149
蓝桥杯竞赛C/C++编程题解与思路汇总
首先,我们来解决第一个问题,即求出给定数列的前20项之和。这个数列看起来像是由两个连续的斐波那契数相除得到的。斐波那契数列是一个著名的数列,从第三项开始,每一项都是前两项之和。斐波那契数列的前几项是:1, 1, 2, 3, 5, 8, 13, 21, ...
给定的数列从2/1开始,看起来是斐波那契数列的相邻项的比值。所以,我们需要首先生成前21项(因为20项之和需要21个数相加)的斐波那契数列,然后计算它们相邻项的比值的和。
下面是一个简单的Python程序来实现这个目标:
```python
# 定义生成斐波那契数列的函数
def fibonacci(n):
fib_seq = [1, 1]
while len(fib_seq) < n:
fib_seq.append(fib_seq[-1] + fib_seq[-2])
return fib_seq
# 计算给定数列的前20项之和
fib_seq = fibonacci(21) # 生成前21项斐波那契数列
target_seq = [fib_seq[i] / fib_seq[i - 1] for i in range(2, 22)] # 计算给定数列的20项
sum_of_target_seq = sum(target_seq) # 计算和
print("给定数列的前20项之和为:", sum_of_target_seq)
```
接下来解决第二个问题,即输入一个正整数,求出它是几位数,并逆序输出各位数字。这个可以通过简单的字符串操作来实现:
```python
# 输入一个正整数
num = int(input("请输入一个正整数:"))
# 求出它是几位数
num_length = len(str(num))
# 逆序输出各位数字
reversed_num = int(str(num)[::-1])
print("该数字是{}位数".format(num_length))
print("逆序输出各位数字为:", reversed_num)
```
阅读全文