码迷,mamicode.com
首页 > 其他好文 > 详细

01串

时间:2018-03-06 21:54:54      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:clr   有一个   display   情况   main   str   pos   name   blog   

01串

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
 
描述

ACM的zyc在研究01串,他知道某一01串的长度,但他想知道不含有“11”子串的这种长度的01串共有多少个,他希望你能帮帮他。

注:01串的长度为2时,有3种:00,01,10。

 
输入
第一行有一个整数n(0<n<=100),表示有n组测试数据;
随后有n行,每行有一个整数m(2<=m<=40),表示01串的长度;
输出
输出不含有“11”子串的这种长度的01串共有多少个,占一行。
样例输入
2
2
3
样例输出
3
5

#include <iostream>
using namespace std;

int main()
{
int n,a[45];
a[2]=3;
a[3]=5;
for(int i=4;i<=40;i++)
a[i]=a[i-1]+a[i-2];
cin>>n;
while(n--)
{
int m;
cin>>m;
cout<<a[m]<<endl;
}
return 0;
}

 这是一个斐波拉西数的变形;

n==3时:为n==2的情况加0+n==2的末尾为0的加1=五种;

n==4时:为n==3的情况加0+n==3的末尾为0(即n==2的所有情况)的加1=八种;

所以:a[i]=a[i-1]+a[i-2];

01串

标签:clr   有一个   display   情况   main   str   pos   name   blog   

原文地址:https://www.cnblogs.com/tianzeng/p/8516615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!