HDU-2563 统计问题 递推

来源:互联网 发布:淘宝美工作品展示 编辑:程序博客网 时间:2024/04/29 08:45

解题思路:
 当前若为左或右,则下一次有两种选择(左、上 或 右、上)
 当前若为上,则下一次有三种选择(左、上、右)

3, 7, 17, 41, 99…  
17=2*7+3
41=2*17+7
99=2*41+17…

 由此分析归纳得 a[i] = 2*a[i-1] + a[i-2];

#include <iostream>using namespace std;const int N = 21;int a[N];void init()//打表{    a[1] = 3;    a[2] = 7;    for(int i = 3; i < 21; i++)    {        a[i] = 2*a[i-1] + a[i-2];    }}int main(){    int n, id;    init();    cin>>n;    while(n--)    {        cin>>id;        cout<<a[id]<<endl;    }    return 0;}
0 0
原创粉丝点击