Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kira bilangan rentetan binari tanpa 1 berturut-turut dalam C

Kira bilangan rentetan binari tanpa 1 berturut-turut dalam C

WBOY
WBOYke hadapan
2023-09-04 22:09:081039semak imbas

Kira bilangan rentetan binari tanpa 1 berturut-turut dalam C

Tugas yang diberikan ialah mengira bilangan semua rentetan binari panjang n tanpa berturut-turut.

Sistem nombor binari ialah sejenis teknologi perwakilan nombor. Ia paling popular dan digunakan dalam sistem digital. Sistem binari digunakan untuk mewakili kuantiti binari yang boleh diwakili oleh mana-mana peranti yang hanya mempunyai dua keadaan operasi atau keadaan yang mungkin. Sebagai contoh, suis hanya mempunyai dua keadaan: hidup atau mati.

Dalam sistem binari, hanya terdapat dua simbol atau kemungkinan nilai berangka, 0 dan 1. Mewakili keadaan operasi atau keadaan yang mungkin oleh mana-mana peranti dengan hanya 2. Rentetan binari ialah rentetan yang mengandungi nilai binari iaitu 0 atau 1

Sekarang mari kita gunakan contoh untuk memahami apa yang perlu kita lakukan -

Input - n = 2

Output - Tiada berturut-turut 2 Kiraan rentetan binari ialah: 3

Penjelasan - 00, 01, 10 Jadi hanya ada 3 rentetan binari panjang n dan tiada berturut-turut 1

input − n = 7

Input

strong> - Kiraan rentetan binari tanpa 1 berturut-turut dalam 7 ialah - 34Kaedah yang digunakan dalam program berikut adalah seperti berikut

    Ambil input n untuk mewakili panjang rentetan
  • Dalam kiraan function , kami akan mengira rentetan binari tanpa 1 berturut-turut, mentakrifkan dua tatasusunan arr[] dan arr_2 saiz n, dan suhu boleh ubah untuk penyimpanan
  • Tugaskan elemen ke-0 daripada dua tatasusunan kepada 1
  • Mulakan gelung dari i=1 sehingga I kurang daripada n.
  • Dalam gelung, tetapkan arr[i] = arr[i-1]+arr_2[i-1] dan arr_2[i] = arr[i-1]
  • Tetapkan suhu = arr[n-1]+arr_2[n-1], dan kemudian cetak suhu.
  • Contoh
Demonstrasi Langsung
#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;
}

Output

Jika kita menjalankan kod di atas kita akan mendapat output berikut -

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

Atas ialah kandungan terperinci Kira bilangan rentetan binari tanpa 1 berturut-turut dalam C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam