测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A40813. 激光样式

填空题 困难

题目描述

激光样式

题目描述

x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。

安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!

国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?

显然,如果只有3台机器,一共可以成5种样式,即:

1、全都关上(sorry, 此时无声胜有声,这也算一种)

2、开一台,共3种

3、开两台,只1种

但是30台就不好算了,国王只好请你帮忙了。

答案提交

要求提交一个整数,表示30台激光器能形成的样式种数。

注意,只提交一个整数,不要填写任何多余的内容。

参考答案

#include <iostream> using namespace std; int main() { int f[30][2]; f[3][0] = 3; // 有 3 台机器,且最后一台关闭,一共有 3 种排列 f[3][1] = 2; // 有 3 台机器,且最后一台打开,一共有 2 种排列 for (int i = 4; i <= 30; i ++) { f[i][0] = f[i - 1][0] + f[i - 1][1]; // 这一位是0,那么前面可以是0,也可以是1 f[i][1] = f[i - 1][0]; // 这一位是1,那么前面只能是0 } cout << f[30][0] + f[30][1] << endl; return 0; }

答案解析

答案:2178309

上一题 下一题