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

アレイが回文であるかどうかをチェックするCプログラム


任意のサイズnの配列arr[]が与えられた場合、私たちのタスクは、配列が回文であるかどうかを確認することです。回文は、MADAM、NAMANなどのように、同じように前後に読み取ることができるシーケンスです。

したがって、配列が回文であるかどうかを確認するために、-

のように配列を前後にトラバースできます。

アレイが回文であるかどうかをチェックするCプログラム

Input: arr[] = {1, 0, 0, 1}
Output: Array is palindrome
Input: arr[] = {1, 2, 3, 4, 5}
Output: Array is not palindrome

以下で使用されるアプローチは次のとおりです

配列を最初から最後までトラバースして、両方が等しくなるまで、開始からの要素が最後からの要素と同じであるかどうかを確認します。配列が回文であるかどうかを確認します。そうでない場合、配列は回文ではありません。

>

アルゴリズム

Start
In function int pallindrome(int arr[], int n)
   Step 1-> initialize i, j, flag and assign flag as 0
   Step 2-> Loop For i = 0, j=n-1 and i< n/2, j>=n/2 and i++, j--
      If arr[i]!=arr[j] then,
         Set flag as 1
            Break
      End If
   End Loop
   Step 3-> If flag == 1 then,
      Return 0
   Step 4-> Else
      Return 1
End function
In function int main(int argc, char const *argv[])
   Step 1-> Declare and initialize arr[] as {1, 0, 2, 3, 2, 2, 1}
   Step 2-> Declare and initialize n as sizeof(arr)/sizeof(arr[0])
   Step 3-> If pallindrome(arr, n) then,
      Print "Array is pallindrome "
   End if
   Step 4-> Else
      Print "Array is not pallindrome "
   Return 0
End main
Stop

#include <stdio.h>
int pallindrome(int arr[], int n) {
   int i, j, flag = 0;
   for(i = 0, j=n-1; i< n/2, j>=n/2; i++, j--) {
      if(arr[i]!=arr[j]) {
         flag = 1;
         break;
      }
   }
   if (flag == 1)
   return 0;
   else
   return 1;
}
int main(int argc, char const *argv[]) {
   int arr[] = {1, 0, 2, 3, 2, 2, 1};
   int n = sizeof(arr)/sizeof(arr[0]);
   if(pallindrome(arr, n)) {
      printf("Array is pallindrome\n");
   }
   else
      printf("Array is not pallindrome\n");
   return 0;
}

出力

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

Array is not palindrome

  1. プラス完全数をチェックするCプログラム

    n桁の数xが与えられた場合、私たちのタスクは、与えられた数のプラス完全数かどうかを確認することです。数値がプラス完全数であることを確認するために、すべての桁のn乗d(d ^ n)を見つけて、すべての桁を合計します。合計がnに等しい場合、その数値はプラス完全数です。プラス完全数は、任意の数のアームストロングを見つけるのと似ています。 以下の例のように- 例 Input: 163 Output: Number is not a perfect_number Explanation: 1^3 + 6^3 + 3^3 is not equal to 163 Input: 371 Output:

  2. アレイが回文であるかどうか、またはC++でSTLを使用していないかどうかを確認するプログラム

    n個の整数の配列arr[n]が与えられた場合、タスクは配列が回文であるかどうかを見つけることです。 C++でSTLを使用して指定されたタスクを実行する必要があります。 C ++には、STL(標準テンプレートライブラリ)の機能があります。これは、データ構造と、スタック、キュー、リストなどのいくつかの機能を提供するために使用されるC ++テンプレートクラスのセットです。これらを使用するには、知識が必要です。テンプレートクラスの。 回文は、シーケンスの前または後ろから同じように読み取られるシーケンスです。回文の簡単な例としては、-MADAM、RACECARなどがあります。配列は、以下の例のような