递推递归练习--H(三国佚事——巴蜀之危)

来源:互联网 发布:最好的c语言入门书籍 编辑:程序博客网 时间:2024/05/01 01:01

题目简述:n封信传向n个烽火台,求传错的种类数

解题思路:

1、首先考虑是一个递归的问题。即用排列组合的思想考虑。

2、排列组合几组数据,发现其中有规律:

a[1]=0;

a[2]=1;

a[3]=(3-1)*(1+0)

……

a[n]=(i-1)*(a[i-1]+a[i-2])

源代码:

#include <iostream>using namespace std;int main(){    int n;    long long int a[21];    a[0]=0;    a[1]=0;    a[2]=1;    for (int i=3;i<=20;i++)        a[i]=(i-1)*(a[i-1]+a[i-2]);    while (cin>>n)        cout<<a[n]<<endl;    return 0;}
解题感想:这道题也是考虑了好久好久,开始没找到规律,用排列组合的方法算了好久,测试了几组数据终于找到规律。


0 0
原创粉丝点击