CCF 100002. 取数游戏

这道编程题目涉及取数游戏,玩家需要从1到N中取数,但相邻的数不能同时取。问题的核心在于斐波那契数列,其中f[i]等于f[i-1]和f[i-2]的和。对于输入n=5,正确答案是13。然而,对于n=2的情况,存在疑惑,一些资源表示答案为3,而非2,这导致了计算上的偏差。寻求解答。
摘要由CSDN通过智能技术生成

取数游戏

 

题目描述 

 

  我们来玩一个游戏:自然数1到N,按顺序列成一排,你可以从中取走任意个数,但是相邻的两个不可以同时被取走。如果你能算出一共有多少种取法,那么你会被天神Lijiganjun奖励。

 

输入

 

  仅包含一个数n(1< n < 50)。

 

输出

 

  仅包含一个数———你的答案。

 

样例输入

 

5


样例输出

 

13

 
 
 
问题分析:
  1. 这道题的核心思想是斐波那契数列。 先考虑 f[i] 与 f[i-1] 的关系,相当于在 i-1 的序列里最后增加了一个 i ,那么就有以下两种情况,一种是先拿 i , 所以 i - 1 就不能一起拿了,因为相邻的不能一起拿,也就是说这种情况相当于前 i - 2 项跟 i 一起拿,也就是 f[i-2] ;第二种情况是留着 i 最后再拿,也就成了先只拿前 i - 1项 ,即 f[i-1] , f[i] 为两种情况之和,也就是 f[i] = f[i-1] +
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值