1. 1바이트는 8개의 비트로 이루어집니다. 255 8개 비트 전체가 1인 경우이고, 1은 최하위 1비트만 1인 경우입니다. 문자 ch의 켜진 비트 개수는 몇 개입니까? 켜진 비트는 1로 설정된 비트의 다른 표현입니다.

대문자 ‘A’의 값은 65이고 6번째와 1번째 비트가 켜져 있습니다.

#include <iostream>
using namespace std;

int main()
{
  char c;
  int cnt = 0;
  int tmp = 1;

  cout << "문자 입력: ";
  cin >> c;

  for(int i = 0 ; i < 8 ; ++i)
  {
    if(c & tmp)
    {
      ++cnt;
    }
    tmp <<= 1;
  }
  cout << "켜진 비트의 개수: " << cnt << endl;
  cout << "값: " << (int)c << endl;

  return 0;
}


2. 정수 N이 소수입니까?

#include <iostream>
using namespace std;

int main()
{
  int num;
  int cnt = 0;

  cout << "정수 입력: ";
  cin >> num;

  for(int i = 1 ; i <= num ; i++)
  {
    if(num % i == 0)
    {
      ++cnt;
    }
  }

  if(cnt == 2)
  {
    cout << "결과 : 소수" << endl;
  }
  else
  {
    cout << "결과 : 합성수[" << cnt << "]" << endl;
  }

  return 0;
}


3. 로또 번호 생성 프로그램

    • 사용자에게 로또 게임 수를 입력받아 게임의 횟수별로 임의로 6개의 수(1~45)를 자동 생성하는 프로그램을 작성하시오. , 생성된 난수는 모두 다른 값이어야 한다.
    •  로또 번호는 정수형 배열을 선언하여 설정한다.
    • 프로그램의 주요한 부분에 주석을 명시하시오.
#include <iostream>
using namespace std;

bool sameNum(const int *arr, int size, int num);

int main()
{
  int num[6];  // 생성된 난수 보관 하는 변수
  int cnt;
  int tmp;  // 난수 값을 임시로 받는 변수

  srand((unsigned int)time(NULL));

  cout << "Enter the game count: ";
  cin >> cnt;

  for(int i = 0 ; i < cnt ; ++i)
  {
    for(int j = 0 ; j < 6 ; ++j)
    {
      tmp = (rand() % 45) + 1;
      while(sameNum(num, j + 1, tmp))  // 같은 값이 있으면
      {
        tmp = (rand() % 45) + 1;  // 새로 값을 받음
      }
      num[j] = tmp;
    }

    // 생성된 난수 출력
    cout << "game" << i << " : ";
    for(int j = 0 ; j < 6 ; ++j)
    {
      cout.width(2);
      cout << num[j] << " ";
    }
    cout << endl;
  }

  return 0;
}

// 같은 값이 있는지 확인해 주는 함수
bool sameNum(const int *arr, int size, int num)
{
  for(int i = 0 ; i < size ; ++i)
  {
    if(arr[i] == num)
    {
      return 1;
    }
  }
  return 0;
}




+ Recent posts