Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cプログラムで2つの0と3つの1が一緒にならないように、n0とm1を出力します。


N0とM1のシーケンスがあり、そのように形成されたシーケンスに2つの連続する0と3つの連続する1が含まれないようにする必要があります。

入力 − n =5 M =9

出力 − 1 1 0 1 1 0 1 1 0 1 0 1 0 1

−上記のシーケンスを作成するには、ステートメント(m =2 *(n + 1)は、上記のシーケンスを作成できない場合よりも真の場合は偽である必要があります。

以下に直接示されている解決策にジャンプするのではなく、最初に質問ロジックを調べて自分で試してみることをお勧めします。

アルゴリズム

START
Step 1 -> take values in ‘n’ and ‘m’
Step 2 -> Loop IF m=n-1
   Loop While m>0 and n>0
      Print 01
      Decrement m and n by 1
   End Loop While
   Loop IF n!=0
      Print 0
   End IF
   Loop IF m!=0
      Print 1
   End IF
Step 3-> Else (m < n-1) || m >= 2 * (n + 1)
Print cn’t have sequence for this
Step 4 -> Else
   Loop While m-n > 1 && n > 0
      Print 1 1 0
      Decrement m by 2 and n by 1
   End While
   Loop While n>0
      Print 1 0
   Decrement m and n by 1
   End While
   Loop While m>0
      Print 1
      Decrement m by 1
   End While
Step 5-> End Else
STOP

#include <stdio.h>
#include <math.h>
int main() {
   int n =5, m=9;
   if( m == n-1 ) { //If m is 1 greater than n then consecutive 0's and 1's
      while( m > 0 && n > 0 ) { //Loop until all m's and n's
         printf("01");
         m--;
         n--;
      }
      if ( n!=0 ) //Print the remaining 0
         printf("0");
      if( m!=0 ) //Print the remaining 1
         printf("1");
   }
   else if ( (m < n-1) || m >= 2 * (n + 1) ) { //If this is true the sequence can't be made
      printf("Can't have sequence for this\n");
   } else {
      while( m-n > 1 && n > 0 ) {
         printf("1 1 0 ");
         m -= 2;
         n--;
      }
      while ( n > 0 ) {
         printf("1 0 ");
         n--;
         m--;
      }
      while ( m > 0 ) {
         printf("1 ");
         m--;
      }
   }
   return 0;
}

出力

上記のプログラムを実行すると、次の出力が生成されます。

1 1 0 1 1 0 1 1 0 1 0 1 0 1

  1. Cで中実および中空の菱形パターンを印刷するプログラム

    プログラムの説明 以下に示すように、中実および中空の菱形パターンを印刷します アルゴリズム 中空菱形の場合- Accept the Number of Rows for Hollow Rhombus from the User Create a Hollow Rhombus containing the same number of Rows specified by the User. Print the first row containing the number of stars same as the number of rows. Print the second row

  2. Cで右矢印パターンと左矢印パターンを印刷するプログラム

    プログラムの説明 右矢印と左矢印のパターンを印刷する アルゴリズム 行数を受け入れて、左矢印パターンと右矢印パターンを印刷します。 Print Upper Part of the Arrow with Stars Patterns Print Inverted Right Triangle with Stars Patterns Print Bottom Part of the Arrow with Stars Patterns Print the Right Triangle with Stars Patterns 例 /*Program to print the Left and ri