杂题 |
您所在的位置:网站首页 › alice的01串 › 杂题 |
杂题
中大
1. 不连续1的子串
题目描述
串只包含0或者1,给定一个数字,输出以此为长度的01串不含连续1的串的个数。 如输入3,则输出5,因为长度为3的01串不含连续1的串包括000, 001, 010, 100, 101。 解题思路思路1: (暴力,较复杂) 将0-n的数转成二进制数,用数组存储此二进制数;遍历此数组,判断1后有没有跟1,若有则break,遍历下一个数;若遍历完数组没有break,则num++。思路2:将’1’或’0’放置在长度固定为n的数组中,不能有连续的’1’,看有多少种放法。 若放i个’1’,则另外有n-i个0,相当于在i-1个’0’的周围放’1’,有多少种放法;等于组合数C(n-i+1, i)。遍历i从0-n,累加种数即可。 源代码思路1: #include #include #include #include using namespace std; char a[32] = {0}; char* toRadix(int i) { itoa(i, a, 2); return a; } int main() { int len, n; int count = 0; cin >> len; n = pow(2, len); for(int i = 0; i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |