在C/C++中编写一个程序来计算没有连续1的二进制字符串的数量?

在c/c++中编写一个程序来计算没有连续1的二进制字符串的数量?

这里我们将看到一个有趣的问题。假设给定一个值n。我们必须找到所有长度为n的字符串,其中没有连续的1。如果n = 2,则数字为{00, 01, 10},所以输出为3。

我们可以使用动态规划来解决它。假设我们有一个表’a’和’b’。其中arr[i]存储长度为i的二进制字符串的数量,其中没有连续的1,并以0结尾。类似地,b也是一样的,但以1结尾。我们可以在最后一个为0的情况下添加0或1,但如果最后一个为1,则只添加0。

让我们看一下获取这个想法的算法。

算法

noConsecutiveOnes(n) –

立即学习“C++免费学习笔记(深入)”;

Begin   define array a and b of size n   a[0] := 1   b[0] := 1   for i in range 1 to n, do      a[i] := a[i-1] + b[i - 1]      b[i] := a[i - 1]   done   return a[n-1] + b[n-1]End

登录后复制

Example

的中文翻译为:

示例

#include using namespace std;int noConsecutiveOnes(int n) {   int a[n], b[n];   a[0] = 1;   b[0] = 1;   for (int i = 1; i 

输出

8

登录后复制

以上就是在C/C++中编写一个程序来计算没有连续1的二进制字符串的数量?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2587599.html

(0)
上一篇 2025年3月6日 15:38:21
下一篇 2025年2月18日 11:24:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论