hdu-5686 Problem B(斐波那契数列)

Posted LittlePointer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu-5686 Problem B(斐波那契数列)相关的知识,希望对你有一定的参考价值。

题目链接:

Problem B

Time Limit: 2000/1000 MS (Java/Others)    

Memory Limit: 65536/65536 K (Java/Others)


Problem Description
 
  度熊面前有一个全是由1构成的字符串,被称为全1序列。你可以合并任意相邻的两个1,从而形成一个新的序列。对于给定的一个全1序列,请计算根据以上方法,可以构成多少种不同的序列。
 

 

Input
 
这里包括多组测试数据,每组测试数据包含一个正整数N,代表全1序列的长度。

1N200
 

 

Output
 
对于每组测试数据,输出一个整数,代表由题目中所给定的全1序列所能形成的新序列的数量。
 

 

Sample Input
1
3
5
 

 

Sample Output
1
3
8
 
题意:
 
思路:
 
可以发现是一个斐波那契数列,可以这样考虑,当多加一个1时,加的这个1可以和前边的合并,这时是dp[i-2]种方案,不和前边合并是dp[i-1]种方案,所以dp[i]=dp[i-1]+dp[i-2];
n太大,long long也不够用,所以就用数组模拟加法计算啦
 
AC代码:
 
//#include <bits/stdc++.h>
#include <iostream>
#include <queue>
#include <cmath>
#include <map>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
#define Riep(n) for(int i=1;i<=n;i++)
#define Riop(n) for(int i=0;i<n;i++)
#define Rjep(n) for(int j=1;j<=n;j++)
#define Rjop(n) for(int j=0;j<n;j++)
#define mst(ss,b) memset(ss,b,sizeof(ss));
typedef long long LL;
const LL mod=1e9+7;
const double PI=acos(-1.0);
const int inf=0x3f3f3f3f;
const int N=1e5+25;

int n;
LL dp[205];
int str[205][202],dis[205];
int fun()
{
    mst(str,0);
    str[1][0]=1;
    str[2][0]=2;
    dis[1]=1;
    dis[2]=1;
    for(int i=3;i<202;i++)
    {
        for(int j=0;j<=200;j++)
        {
            str[i][j]+=str[i-1][j]+str[i-2][j];
           // str[i][j+1]+=(str[i-1][j]+str[i-2][j])/10;
        }
        for(int j=0;j<=200;j++)
        {
            str[i][j+1]+=str[i][j]/10;
            str[i][j]%=10;
        }
    }
}
int main()
{
    fun();
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=198;i>=0;i--)
        {
            if(str[n][i]!=0)
            {
                for(int j=i;j>=0;j--)printf("%d",str[n][j]);
                break;
            }
        }
        printf("\n");
    }

    return 0;
}

 

以上是关于hdu-5686 Problem B(斐波那契数列)的主要内容,如果未能解决你的问题,请参考以下文章

斐波那契数列

JavaScript求斐波那契数列的和

编写一个C程序,用于产生斐波那契数列的前10个数。

如何用C语言输出斐波那契数列的前n项

介绍下斐波那契数列。

斐波那契数列