蓝桥杯——激光样式

文章讲述了在X星球的节日活动中,由于激光器的bug,只能交替开启。通过观察发现开启方式与斐波那契数列相关。作者用编程方法计算出30台激光器所能形成的样式总数,最后的代码展示了如何使用列表实现这一计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

X 星球的盛大节日为增加气氛,用 30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种 bug 存在的情况下,一共能打出多少种激光效果?显然,如果只有 3 台机器,一共可以成5种样式,即:全都关上(sorry,此时无声胜有声,这也算一种);开一台,共3种:开两台,只 1种。30 台就不好算了,国王只好请你帮忙了。要求输出一个整数,表示 30 台激光器能形成的样式种数。

分析

我们可以简单列举一下前几台机器是什么情况,然后我们根据前几台的情况找规律。1台:2种情况,2台:3种情况。3台:5种情况。4台:8种情况...... 由此可见,后一台的情况种数是前两种情况之和,类似于斐波那契数列。解决这种问题我们选择使用列表来接收不同台数机光器的情况种数。即num=[0,2,3]+[0]*28,这样定义的好处是num[n]就是n台的情况种数,可以算出所有的结果,这一题我们只算最后一个结果。

代码

num=[0,2,3]+[0]*28
for i in range(3,31):
  num[i]=num[i-2]+num[i-1]
print(num[-1])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值