Cプログラムで再帰を使用したバイナリからグレイコード
2進数は、0と1の2ビットしかない数値です。
グレイコードは、コードの2つの連続した番号というプロパティを持つ特殊なタイプの2進数です。 1ビット以上異なることはできません。グレイコードのこのプロパティにより、より多くのKマップ、エラー訂正、通信などが役立ちます。
これにより、バイナリからグレイコードへの変換が必要になります。それでは、バイナリをグレイコードに変換するアルゴリズムを見てみましょう。 再帰を使用する 。
例
グレイコードcoの例を見てみましょう
Input : 1001 Output : 1101
Step 1 : Do with input n : Step 1.1 : if n = 0, gray = 0 ; Step 1.2 : if the last two bits are opposite, gray = 1 + 10*(go to step 1 passing n/10). Step 1.3 : if the last two bits are same, gray = 10*(go to step 1 passing n/10). Step 2 : Print gray. Step 3 : EXIT.
例
#include <iostream> using namespace std; int binaryGrayConversion(int n) { if (!n) return 0; int a = n % 10; int b = (n / 10) % 10; if ((a && !b) || (!a && b)) return (1 + 10 * binaryGrayConversion(n / 10)); return (10 * binaryGrayConversion(n / 10)); } int main() { int binary_number = 100110001; cout<<"The binary number is "<<binary_number<<endl; cout<<"The gray code conversion is "<<binaryGrayConversion(binary_number); return 0; }
出力
The binary number is 100110001 The gray code conversion is 110101001
-
JavaScriptで再帰を使用した10進数から2進数への変換
最初で唯一の引数として数値を受け取るJavaScript関数を作成する必要があります。関数は再帰を使用して、その数値の2進表記を表す文字列を作成する必要があります。 例- f(4) = '100' f(1000) = '1111101000' f(8) = '1000' 例 以下はコードです- const decimalToBinary = (num) => { if(num >= 1) { // If num is not divisible by 2 the
-
Cアレイが回文であるか、再帰を使用していないかを確認するプログラム
配列arr[n]が与えられ、nは配列のあるサイズである場合、タスクは、配列が回文であるか、再帰を使用していないことを確認することです。回文は、MADAM、NAMANなどのように、同じように前後に読み取ることができるシーケンスです。 したがって、配列が回文であるかどうかを確認するために、-のように配列を前後にトラバースできます。 再帰では、開始値と終了値を等しくなるまで変更する必要があります。または、開始値と終了値が等しくない場合は、終了して、指定された配列が回文ではないことをfalseに返します。 例 Input: arr[] = { 2, 3, 4, 3, 2} Output: Y