Rumah > pembangunan bahagian belakang > C++ > 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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2023-08-25 20:33:22
ke hadapan
1334 orang telah melayarinya

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
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

pseudo-binary representation of 51 is: 11 10 10 10 10
Salin selepas log masuk

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 Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan