Advertisement

Big Number Addition + Fibonacci Sequence

阅读量:

问题描述

度熊面前存在一个仅由数字1组成的字符串,该字符串被称为全1序列。允许将任意两个相邻的1进行合并,从而生成一个新的序列。针对给定的全1序列,需要计算通过上述方式能够构造出的不同序列的总数。

输入
本题包含多组测试数据,每组测试数据提供一个正整数N,表示全1序列的长度。
1≤N≤200

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

样例输入
1
3
5

样例输出
1
3

8

最初我误以为这是一道求全排列的问题,并打算采用隔板法对每种情况进行分类讨论,但后来发现这种方法无法实现。最终意识到这是一个斐波那契数列问题。不过考虑到前200项数值较大,必须使用大数加法进行计算。我现学了大数加法的模拟方法,相较于以往使用的简单方式更为高效。尝试计算到第200项时发现其数值长度为43位,因此数组大小设置为50就足够使用了

复制代码
 #include<stdio.h>

    
 int num[201][51];
    
 void previous_conduct()
    
 {
    
 	num[0][0]=1;
    
 	num[1][0]=1;
    
 	num[2][0]=2;
    
 	for(int i=3;i<=200;i++)

全部评论 (0)

还没有任何评论哟~