一个任务
教练希望他的球队的运动员使用大步(2 步)和小步(1 步)跑上体育场的台阶,如下所示:
每只脚踏出的大步数相同;运动员每只脚迈出的小步数相同;大步数不得少于小步数;运动员开始用左脚走路。编写一个程序,帮助教练确定如果由 n 个台阶组成(n 为偶数),运动员可以按照他给定的规则爬上多少种台阶。
比如n=6,有4种这样的方式:
2 2 1 1 , 2 1 1 2 , 1 2 2 1 , 1 1 2 2
输入:文件input.txt,唯一一行包含偶数N。
限制:0
输出:文件 output.txt,在一行中包含运动员爬上体育场台阶的方式的数量。
输入.txt 2 6 输出.txt 0 4
我想写如果 2 步,则 0,如果 4 步,则 2 2,即 1,如果 6,则 4,如果 8,则 2 2 2 2并交换左右步骤,总共 6 种方式。我也不知道接下来要做什么,也不知道怎么写(
像这样?
我们通过所有的解决方案
L - 大步,S - 小
对于每组 L,S,我们有办法为一条腿安排它们 -
对于每一个左边的,我们迭代所有右边的,总计 - 平方。以便
其中对上述方程组的所有解求和。
对于
N=6:只有一种解决方案L=1, S=1,答案是 4。For
N=12: 有两种解法L=3, S=0和L=2, S=2, 从那里答案是37. 写出来费了好久,不过貌似是真的:)