이 튜토리얼에서는 의사 이진수의 가장 작은 합으로 숫자를 표현하는 방법에 대해 설명합니다. 의사 이진수(pseudo-binary number)는 이진수 0과 1로 구성된 숫자입니다. 유사 이진수의 예로는 00, 11, 10, 100, 111, 1011 등이 있습니다.
다음은 유사 이진수의 합으로 표현되는 숫자의 몇 가지 예입니다.
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을 나타내는 가장 작은 유사 이진수를 찾는 가장 좋은 방법 중 하나입니다.
숫자 X를 선택하고 숫자 N의 각 자릿수에 따라 X의 자릿수를 1 또는 0으로 업데이트하세요.
N의 각 숫자를 확인하세요.
0이면 X의 해당 비트를 0으로 설정하세요.
0이 아닌 경우 X의 비트를 1로 설정합니다.
N = 32라고 가정하면 X는 11이 됩니다.
그러면 X는 의사 이진수가 됩니다.
이제 N에서 X를 빼고 N이 0이 될 때까지 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's and 1'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 값을 임시 변수로 업데이트하고 내부 루프를 사용하여 임시 변수의 각 위치를 확인하고 변수 X의 해당 위치를 업데이트하여 이를 수행합니다.
X의 값은 의사 이진수이므로 인쇄하세요.
N에서 X를 빼고 N이 0이 될 때까지 외부 루프에 다시 들어가 N을 업데이트합니다.
이 튜토리얼에서는 의사 이진수의 가능한 가장 작은 합으로 숫자를 표현하는 방법에 대해 논의했습니다. 우리는 모든 유사 이진수를 찾는 방법을 논의했습니다. 또한 동일한 C++ 코드를 C, Java, Python 등과 같은 다른 프로그래밍 언어로 작성할 수 있다는 점도 논의했습니다. 이 튜토리얼이 도움이 되길 바랍니다.
위 내용은 C++에서는 의사 이진수의 가능한 가장 작은 합으로 숫자를 나타냅니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!