计算二进制序列数
来源:互联网 发布:c语言的主函数是什么 编辑:程序博客网 时间:2024/04/29 10:36
写一个函数来计算可能产生的二进制序列数,在这个二进制序列中,两个0之间一定要以1进行分割,也就是说不能出现“00”的情况,只能是“010”,比如 当序列长度为n=3时,所有可能的序列如下:010, 011,101, 110,111,你的函数的输出值应该为5。
Solution 1: cost= O(3^n)
--------------------------------
第i个bit上面的只有0和1种,
如果选择为0, 则i-1,上面的选择只能为1,
如果选择为1, 那么i-1上面的选择既可以为0,也可以为1,
如此从n,一步一步的递归就能得到结果。
int f(int n, int select)
{
if (n == 1)
return 1;
else{
if(select == 0)
return f(n-1, 1);
else{
return f(n-1, 0) + f(n-1, 1);
}
}
}
int main (int n)
{
return f(n,0) + f(n,1);
}
Solution 1: cost= O(n)
--------------------------------
将上面的递归的中间结果记下了,以空间换时间
int f (int n)
{
int res[n][2];
int res[0][0] = 1;
int res[0][1] = 1;
int sum = 0;
for (int i=1; i<n; i++)
{
res[i][0] = res[i-1][1];
res[i][1] = res[i-1][0] + res[i-1][1];
sum += res[i][0] + res[i][1];
}
return sum;
}
- 计算二进制序列数
- 正负数二进制计算
- 计算二进制序列的值
- 计算二进制数的位数
- 高效计算二进制序列1的个数
- 一个整型数的二进制序列
- 逆置一个数的二进制序列
- 比较两个数二进制序列有几位不同
- 逆序输入数的二进制序列输出
- 计算二进制数中1的个数
- 计算二进制数中1的个数
- 计算二进制数有多少个‘1’
- 计算二进制数中1的个数
- 计算两个二进制数的和。
- 计算二进制数中1的个数
- 计算二进制数的0的个数
- 计算二进制数的0的个数
- 计算二进制数的0的个数
- location.href=location.href的问题
- 几种百度快照问题解析让你隔天快照
- 3X3智力拼图技巧
- Personal Name Classification in web Queries
- (转)Javascript标准DOM Range操作(3)
- 计算二进制序列数
- Pqmagic的使用方法
- 如何用Win XP自带“磁盘管理”进行分区操作
- 存储过程
- android画图板原理
- 神秘常量复出-用[0x077CB531]计算二进制末尾是0的个数
- 一、童年
- 开始学习JavaScript的第一个东东
- 将 Tocmat5.0 注册为 Windows 的服务程序