IT 프로그래밍/객체지향프로그래밍

[C++]음이 아닌 정수 중 최소값 출력, 이진수 변환 출력

기술1 2024. 4. 17. 21:27

 

#include <iostream>
using namespace std;

int main() {
    int n, k;
    cin >> n;
    cin >> k;
    int min = k, max = k;
    cout << max - min << endl;

    for (int i = 1; i < n; i++) {
        cin >> k;
        if (k > max) max = k;
        if (k < min) min = k;

        cout << max - min << endl;
    }
    return 0;
}

 

#include <iostream>
using namespace std;


int main() 
{
    int N;
    cin >> N;


    int v = 1;

    while (v * 2 <= N)
        v *= 2;

    while (v > 0)
    {
        if (N >= v)
        {
            N -= v;
            cout << 1;
        }
        else
            cout << 0;
        v /= 2;
    }
    return 0;
}

이 프로그램은 사용자로부터 정수 N을 이진수로 변환하여 출력합니다.

 

변수 v를 1로 초기화합니다. while문을 사용하여 v가 N보다 작거나 같을 때까지 v를 2배로 증가시킵니다. 이 과정에서 v는 N보다 작거나 같은 2의 거듭제곱 중 가장 큰 값을 갖습니다.

 

while문을 사용하여 v가 0보다 클 때까지 다음을 반복합니다.

 

만약 N보다 크거나 같으면, N에서 v를 뺀 후 1을 출력합니다. 그렇지 않으면 0을 출력합니다. v를 2로 나눕니다. 이 과정을 통해 이진수의 각 자릿수를 차례로 출력합니다.