您的位置:首页 > 编程语言 > C语言/C++

杭电里面水题的RPG问题

2015-05-29 23:34 288 查看
问题基本上就是这样:一行方格用red.pink,green三种颜色图,但是有个条件就是相邻的两个方格颜色不能相同。

这个明显的就是递归的问题。

//用递归的方法这样考虑:

//f(n) = (m-1)*a(n) + (m-2)*b(n);

//a(n)代表第1格与第n-1格颜色颜色相同的种类数;

//b(n)代表第1格与第n-1格颜色颜色不相同的种类数,即f(n-1);

//a(n)中的第n-2格一定与第一格颜色不同,所以a(n)=f(n-2);

//所以有递推式 f(n) = (m-2)*f(n-1) + (m-1)*f(n-2);

//但是要注意n<=3时不满足递推关系,

//因为此时a(n)不合法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++递归问题