计算C中没有连续1的二进制字符串的数目

输出-没有连续1的7的二进制字符串的计数是-34

在以下程序中使用的方法如下

  • 输入n作为字符串长度

  • 在count函数中,我们将对不具有连续1的二进制字符串进行计数,定义两个大小为n的数组arr []和arr_2,以及一个变量temp来存储结果。

  • 将两个数组的第0个元素分配为1

  • 从i = 1循环直到我小于n。

  • 循环时,设置arr [i] = arr [i-1] + arr_2 [i-1]和arr_2 [i] = arr [i-1]

  • 设置温度= arr [n-1] + arr_2 [n-1],然后打印该温度。

示例

#include<stdio.h>
//创建函数以计算不带连续1的二进制字符串
void count(int num){
   int arr[num];
   int arr_2[num];
   int i=0, temp=0;
   arr[0] = arr_2[0] = 1;
   //循环直到数字不等于0-
   for (i = 1; i < num; i++){
      arr[i] = arr[i-1] + arr_2[i-1];
      arr_2[i] = arr[i-1];
   }
   temp = arr[num-1] + arr_2[num-1];
   printf("Count of binary strings without consecutive 1’s of %d is : %d",num,temp);
   printf("\n");
}
int main(){
   //调用计数功能
   count(10);
   count(7);
   count(1);
   return 0;
}

输出结果

如果运行上面的代码,我们将获得以下输出-

Count of binary strings without consecutive 1’s of 10 is : 144
Count of binary strings without consecutive 1’s of 7 is : 34
Count of binary strings without consecutive 1’s of 1 is : 2