菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
464
0

hdoj:2047

原创
05/13 14:22
阅读数 8162
#include <iostream>
using namespace std;

long long a[41] = { 0, 3, 8 };
// O,E 组成长度为n的数量 
long long fib(int n)
{
    if (n == 1)
        return 2;
    if (n == 2)
        return 3;
    long long f1 = 2;
    long long f2 = 3;
    while (n >= 3)
    {
        long long f3 = f1 + f2;
        f1 = f2;
        f2 = f3;
        n--;
    }
    return f2;
}

int main()
{
    int n;
    long long b[41];
    b[1] = 3;
    b[2] = 8;
    for (int i = 3; i <= 40; i++)
    {
        // 规律不对  // 2^n -2 是只有EF组成长度为n的字符串个数
        //b[i] = 2 * fib(i) + pow(2, i) - 2;
        a[i] = 2 * (a[i - 1] + a[i - 2]);
    }
    while (cin >> n)
    {
        cout << a[n] << endl;
    }
}

http://acm.hdu.edu.cn/showproblem.php?pid=2047

 

发表评论

0/200
464 点赞
0 评论
收藏
为你推荐 换一批