hdu.2047

 

没什么好讲的,多写几项规律就出来了:f(n)=2*(f(n-1)+f(n-2)) 

接下来就是递归加打表

#include<iostream>
using namespace std;

#define N 40
long long a[40] = { 0,3,8,22, };

long long sum(int n)
{
  if (n == 1)
    return 3;
  if (n == 2)
    return 8;

  if(a[n]==0)
    a[n]= (sum(n - 1) + sum(n - 2))*2;

  return a[n];

}

int main()
{
  int n;
  while (cin>>n)
  {
    cout << sum(n) << endl;
  }
  return 0;
}

posted @ 2020-09-01 15:13  天天掉头发  阅读(116)  评论(0编辑  收藏  举报
返回顶端