検索
ホームページバックエンド開発C++C で連続 1 のないバイナリ文字列の数を数える

C で連続 1 のないバイナリ文字列の数を数える

与えられたタスクは、連続する 1 を持たない長さ n のすべてのバイナリ文字列の数をカウントすることです。

2 進数システムは、数値表現技術の一種です。最も一般的であり、デジタル システムで使用されます。 2 進法は、動作状態または考えられる条件が 2 つしかないデバイスで表現できる 2 進数を表すために使用されます。たとえば、スイッチにはオンまたはオフの 2 つの状態しかありません。

2 進法では、記号または取り得る数値は 0 と 1 の 2 つだけです。 2 だけのデバイスによる動作状態または考えられる状態を表します。バイナリ文字列は、バイナリ値、つまり 0 または 1 を含む文字列です。

次に、何をしなければならないかを理解するために例を使用しましょう -

Enter - n = 2

出力 - 2 に連続 1 がないバイナリ文字列の数は次のとおりです: 3

説明 - 00、01、10 のみ連続しない長さ n の 3 つのバイナリ文字列 1

input − n = 7

output

Input Strong > - 7 の中に連続 1 がないバイナリ文字列の数は - 34です。

次のプログラムで使用されるメソッドは次のとおりです。

  • 入力を受け取ります。n は文字列を表します。 length

  • count 関数では、連続する 1 のないバイナリ文字列をカウントし、サイズ n の 2 つの配列 arr[] と arr_2 を定義し、格納された変数 temp # への配列を定義します。

  • 2 つの配列の 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;
}

出力

上記のコードを実行すると、次の出力が得られます-

rreeee

以上がC で連続 1 のないバイナリ文字列の数を数えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はtutorialspointで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
(超详细)VScode中配置C语言环境的方法(超详细)VScode中配置C语言环境的方法Dec 05, 2022 pm 07:05 PM

VScode中怎么配置C语言环境?下面本篇文章给大家介绍一下VScode配置C语言环境的方法(超详细),希望对大家有所帮助!

c语言中node是什么意思c语言中node是什么意思Jul 06, 2022 pm 03:51 PM

在C语言中,node是用于定义链表结点的名称,通常在数据结构中用作结点的类型名,语法为“struct Node{...};”;结构和类在定义出名称以后,直接用该名称就可以定义对象,C语言中还存在“Node * a”和“Node* &a”。

c语言怎么将数字转换成字符串c语言怎么将数字转换成字符串Jan 04, 2023 pm 03:20 PM

c语言将数字转换成字符串的方法:1、ascii码操作,在原数字的基础上加“0x30”,语法“数字+0x30”,会存储数字对应的字符ascii码;2、使用itoa(),可以把整型数转换成字符串,语法“itoa(number1,string,数字);”;3、使用sprintf(),可以能够根据指定的需求,格式化内容,存储至指针指向的字符串。

c语言数组如何初始化c语言数组如何初始化Jan 04, 2023 pm 03:36 PM

C语言数组初始化的三种方式:1、在定义时直接赋值,语法“数据类型 arrayName[index] = {值};”;2、利用for循环初始化,语法“for (int i=0;i<3;i++) {arr[i] = i;}”;3、使用memset()函数初始化,语法“memset(arr, 0, sizeof(int) * 3)”。

c语言中源文件编译后生成什么文件c语言中源文件编译后生成什么文件Nov 23, 2022 pm 07:44 PM

c语言编译后生成“.OBJ”的二进制文件(目标文件)。在C语言中,源程序(.c文件)经过编译程序编译之后,会生成一个后缀为“.OBJ”的二进制文件(称为目标文件);最后还要由称为“连接程序”(Link)的软件,把此“.OBJ”文件与c语言提供的各种库函数连接在一起,生成一个后缀“.EXE”的可执行文件。

c语言怎么计算n的阶乘c语言怎么计算n的阶乘Jan 04, 2023 pm 03:18 PM

c语言计算n的阶乘的方法:1、通过for循环计算阶乘,代码如“for (i = 1; i <= n; i++){fact *= i;}”;2、通过while循环计算阶乘,代码如“while (i <= n){fact *= i;i++;}”;3、通过递归方式计算阶乘,代码如“ int Fact(int n){int res = n;if (n > 1)res...”。

c语言中*p和p的区别是什么c语言中*p和p的区别是什么Nov 29, 2022 pm 06:03 PM

区别:1、表示的含义不同,“*p”表示此指针指向的内存地址中存放的内容,“p”表示一个指针变量的名字,指此指针变量所指向的内存地址。2、输出的格式不同,“*p”输出的一般是一个和指针类型一致的变量或者常量,“p”输出的是一个16进制数, 输出一个指针的地址。3、功能不同,“*p”是让程序去那个地址取出数据,“p”用于存放的是地址。

go语言兼容c语言吗go语言兼容c语言吗Dec 26, 2022 am 10:23 AM

go语言兼容c语言;Go语言可以调用C语言,还能给C语言调用。Go语言工具包中有一个Cgo命令,它用来处理Go调用C相关操作;而Go的函数可以导出给C用,只要在要导出的函数前面加上“//export funcname”就行了,然后可以使用“go build -buildmode=c-shared -o libxxx.so”命令编译生成动态库和头文件供C语言中使用。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール