Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Dalam C++, mewakili nombor sebagai jumlah terkecil yang mungkin bagi nombor pseudo-perduaan

Dalam C++, mewakili nombor sebagai jumlah terkecil yang mungkin bagi nombor pseudo-perduaan

WBOY
WBOYke hadapan
2023-08-25 20:33:221195semak imbas

Dalam C++, mewakili nombor sebagai jumlah terkecil yang mungkin bagi nombor pseudo-perduaan

Tutorial ini akan membincangkan mewakili nombor sebagai jumlah terkecil nombor pseudo-perduaan. Nombor pseudo-binari ialah nombor yang terdiri daripada digit binari 0 dan 1. Contoh nombor pseudo-perduaan ialah 00, 11, 10, 100, 111, 1011, dsb.

Berikut ialah beberapa contoh nombor yang diwakili sebagai hasil tambah nombor pseudo-perduaan.

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

Cara untuk mencari penyelesaian

Di bawah adalah salah satu cara terbaik untuk mencari nombor pseudo-perduaan terkecil yang mewakili N.

  • Ambil nombor X dan kemas kini bilangan digit dalam X kepada 1 atau 0 berdasarkan setiap digit nombor N.

  • Semak setiap digit N:

    • Jika 0, tetapkan bit X itu kepada 0.

    • Jika bukan 0, tetapkan bit X kepada 1.

    • Andaikan N = 32, X akan menjadi 11.

  • Kemudian X akan menjadi nombor pseudo-binary.

  • Sekarang tolak X daripada N dan ulangi langkah 1 sehingga N menjadi sifar.

Contoh

C++ kod untuk kaedah di atas

#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;
}

Output

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

Memahami kod

  • Di setiap kedudukan N dan gelung semasa digunakan untuk memilih nombor semasa dan N luar

  • Kami melakukan ini dengan mengemas kini nilai N ke dalam pembolehubah temp dan menggunakan gelung dalam untuk menyemak setiap kedudukan pembolehubah temp dan mengemas kini kedudukan pembolehubah X itu.

  • Cetak nilai X kerana ia adalah nombor pseudo-binary.

  • Kami mengemas kini N dengan menolak X daripada N dan memasuki gelung luar sekali lagi sehingga N menjadi 0.

Kesimpulan

Dalam tutorial ini, kami membincangkan cara untuk mewakili nombor sebagai jumlah terkecil yang mungkin bagi nombor pseudo-perduaan. Kami membincangkan cara untuk mencari semua nombor pseudo-perduaan. Kami juga membincangkan bahawa kod C++ yang sama boleh kami tulis dalam bahasa pengaturcaraan lain seperti C, Java, Python, dll. Semoga tutorial ini membantu anda.

Atas ialah kandungan terperinci Dalam C++, mewakili nombor sebagai jumlah terkecil yang mungkin bagi nombor pseudo-perduaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam