首頁 >後端開發 >C++ >計算C語言中沒有連續1的二進位字串的數量

計算C語言中沒有連續1的二進位字串的數量

WBOY
WBOY轉載
2023-09-04 22:09:081063瀏覽

計算C語言中沒有連續1的二進位字串的數量

給定的任務是計算長度為 n 的所有二進位字串中沒有連續 1 的數量。

二進位數字系統是數字表示技術的一種。它在數位系統中最受歡迎和使用。二進制系統用於表示二進制量,該二進制量可以由任何僅具有兩種操作狀態或可能條件的設備來表示。例如,開關只有兩種狀態:開啟或關閉。

在二進位系統中,只有兩個符號或可能的數字值,即 0 和 1。由任何只有 2 的設備表示操作狀態或可能的條件。二進位字串是那些包含二進位值的字串,即0 或1

現在讓我們使用範例來了解我們必須做什麼-

輸入 - n = 2

輸出 - 2中沒有連續1的二進位字串的計數為:3

解釋 - 00, 01, 10 因此只有3 個長度為n 的二進位字串且沒有連續的1

輸入 − n = 7

輸出

輸入 strong> - 7 中沒有連續1 的二進位字串的計數為- 34

下面的程式中使用的方法如下

  • ##取一個輸入n表示字串長度

  • 在count函數中,我們將計算沒有連續1的二進位字串,定義兩個大小為n的陣列arr[]和arr_2,以及一個用於儲存的變數temp

  • 將兩個陣列的第0 個元素賦值為1

  • 從i=1 開始循環,直到I小於n .

  • 在迴圈中,設定arr[i] = arr[i-1] arr_2[i-1] 和arr_2[i] = arr[i-1]

  • 設定temp = arr[n-1] arr_2[n-1],然後列印temp。

範例 現場示範

#include<stdio.h>
//create function to calculate binary strings without consecutive 1&rsquo;s
void count(int num){
   int arr[num];
   int arr_2[num];
   int i=0, temp=0;
   arr[0] = arr_2[0] = 1;
   //loop till number isn&#39;t equals to 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&rsquo;s of %d is : %d",num,temp);
   printf("</p><p>");
}
int main(){
   //call the count function
   count(10);
   count(7);
   count(1);
   return 0;
}

輸出

如果我們執行上面的程式碼,我們將得到以下輸出-

Count of binary strings without consecutive 1&rsquo;s of 10 is : 144
Count of binary strings without consecutive 1&rsquo;s of 7 is : 34
Count of binary strings without consecutive 1&rsquo;s of 1 is : 2

以上是計算C語言中沒有連續1的二進位字串的數量的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除