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

WBOY
リリース: 2023-08-25 20:33:22
転載
1240 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート