ホームページ  >  記事  >  バックエンド開発  >  C++ では、擬似 2 進数の最小和として数値を表します。

C++ では、擬似 2 進数の最小和として数値を表します。

WBOY
WBOY転載
2023-08-25 20:33:221237ブラウズ

C++ では、擬似 2 進数の最小和として数値を表します。

このチュートリアルでは、擬似 2 進数の最小合計として数値を表現する方法について説明します。擬似 2 進数は、2 進数の 0 と 1 で構成される数値です。擬似 2 進数の例は、00、11、10、100、111、1011 などです。

ここでは、擬似 2 進数の合計として表される数値の例をいくつか示します。

Input : 23
Output : 11 + 11 + 1
Explanation : 23 = 11 + 11 + 1, sum of pseudo-binary numbers(11, 11, 1) is 23.

Input : 50
Output : 10 + 10 + 10 + 10 + 10

解決策を見つける方法

次は、N を表す最小の擬似 2 進数を見つけるための最良の方法の 1 つです。

  • 数値 X を取得し、数値 N の各桁に従って X の桁数を 1 または 0 に更新します。

  • N の各桁を確認します:

    • 0 の場合は、X のそのビットを 0 に設定します。

    • 0 でない場合は、X のビットを 1 に設定します。

    • N = 32 とすると、X は 11 になります。

  • # すると、X は擬似 2 進数になります。

  • N から X を減算し、N がゼロになるまでステップ 1 を繰り返します。

上記メソッドの C コード

#include<iostream>
using namespace std;
int main(){
   int N = 51;
   // find a pseudo-binary number until N becomes 0.
   cout << "pseudo-binary representation of " << N << " is: ";
   while (N > 0){                
      // finding X which contains 0&#39;s and 1&#39;s according to N.
      int temp = N;
      int X = 0, bit = 1;
      // checking each place of N for zero or non-zero.
      while (temp!=0){
      int last_dig = temp % 10;
      temp = temp / 10;
      if (last_dig != 0)
         X += bit;
         bit *= 10;
      }
      // printing one pseudo-binary number.
      cout << X << " ";
      // Updating N by subtracting with X.
      N = N - X;
       
   }
   return 0;
}

出力

pseudo-binary representation of 51 is: 11 10 10 10 10

コードの理解

  • 外側の while ループを使用して N を取得し、各位置の数値を選択して X を見つけます。

  • これを行うには、N の値を temp 変数に更新し、内部ループを使用して temp 変数の各位置をチェックし、変数 X のその位置を更新します。

  • X は擬似 2 進数であるため、その値を出力します。

  • N から X を減算し、N が 0 になるまで外側のループに再度入ることで、N を更新します。

結論

このチュートリアルでは、擬似 2 進数の最小和として数値を表す方法について説明しました。すべての疑似 2 進数を見つける方法について説明しました。また、同じ C コードを C、Java、Python などの他のプログラミング言語でも記述できることについても説明しました。このチュートリアルがお役に立てば幸いです。

以上がC++ では、擬似 2 進数の最小和として数値を表します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。