题解:蓝桥云课 760 数的计算

【题目来源】

蓝桥云课:1.数的计算 - 蓝桥云课 (lanqiao.cn)

【题目描述】

输入一个自然数 \(n(n≤1000)\),我们对此自然数按照如下方法进行处理:

1.不作任何处理;

2.在它的左边加上一个自然数,但该自然数不能超过原数的一半;

3.加上数后,继续按此规则进行处理.直到不能再加自然数为止。

问总共可以产生多少个数。

【输入】

输入一个正整数 \(n\)

【输出】

输出一个整数,表示答案。

【输入样例】

6

【输出样例】

6

【算法标签】

《蓝桥 760 数的计算》 #2001# #NOIP# #递推# #递归#

【解题思路】

image

【代码详解】

def f(n):
    """
    递归函数,计算特定数列的第n项
    
    参数:
        n: 要计算的项数
    
    返回:
        数列的第n项值
    """
    if n == 1:  # 基础情况:第一项为1
        return 1
    
    ans = 1  # 初始化结果为1(至少包含自身)
    
    # 遍历从1到n//2的所有整数
    for i in range(1, n//2 + 1):
        ans += f(i)  # 递归计算f(i)并累加到结果中
    
    return ans

# 获取用户输入
n = int(input())
# 计算并输出结果
print(f(n))

【运行结果】

6
6
posted @ 2026-03-04 10:49  团爸讲算法  阅读(1)  评论(0)    收藏  举报