蓝桥杯备考冲刺必刷题(Python) | 计算函数值

学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。

附上汇总贴:蓝桥杯备考冲刺必刷题(Python) | 汇总-CSDN博客


【题目描述】
在一个神秘的世界中,存在一个传说中的神秘花园,被认为拥有无限的知识。但要进入这个花园,你必须解决花园入口处的一道神秘数学难题。这个难题与一个特殊的数学函数相关,称为“神秘函数”。
神秘函数 S ( x ) S(x) S(x)的定义如下:

  • x x x 0 0 0时, S ( 0 ) = 1 S(0)=1 S(0)=1
  • x x x为偶数时, S ( x ) = S ( x / 2 ) S(x)=S(x/2) S(x)=S(x/2)
  • x x x为奇数时, S ( x ) = S ( x − 1 ) + 1 S(x)=S(x-1)+1 S(x)=S(x1)+1

你需要编写一个程序,计算给定正整数 x x x,神秘函数 S ( x ) S(x) S(x)的值。只有当你正确解决了这道难题,才能获得通行证,进入神秘花园探索其中的知识宝藏。
【输入】
输入包含一个正整数 x ( 1 ≤ x ≤ 1 0 6 ) x(1\le x\le 10^6) x(1x106),表示你要解决的神秘函数问题。
【输出】
输出一个整数,表示神秘函数 S ( x ) S(x) S(x)的值,即你成功解决问题后得到的答案。
【输入样例】

7

【输出样例】

4

【代码详解】
[图片]

a = [0 for i in range(1000005)]
a[0] = 1
for i in range(0, 1000000+1):  # 预处理所有x对应的S(x)
    if i%2==0:
        a[i] = a[i//2]
    else:
        a[i] = a[i-1] + 1
n = int(input())  # 输入n
print(a[n])  # 直接输出答案

【运行结果】

7
4
  • 14
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值