1. 키보드로부터 최대 세 자리의 정수를 입력 받습니다. 자릿수들의 합계는 얼마입니까?

#include <iostream>
using namespace std;

int main()
{
  int num;
  int result;

  while(1)
  {
    cout << "입력(3자리): ";
    cin >> num;

    if(-1 == num)
    {
      break;
    }
    else if((0 > num) || (999 < num))
    {
      cout << "3자리이하의 수를 입력하시오" << endl;
    }
    else
    {
      result = num / 100;    // 100 자리 
      num %= 100;
      result = result + (num / 10);  // 100 자리 + 10자리
      num %= 10;
      result += num;    // 100 자리 + 10 자리 + 1자리
      cout << "자릿수 합계: " << result << endl;
    }
  }
  cout << "프로그램 종료" << endl;
  
  return 0;
}


2. 10진수 0부터 16까지의 정수를 8진수로 출력합니다. 출력에는 10진수와 8진수의 대응관계를 반드시 포함시킵니다. 10진수 8 8진수로 10입니다.

#include <iostream>
using namespace std;

int main()
{
  cout << "10진수\t8진수" << endl;

  for(int i = 0 ; 17 > i ; i++)
  {
    cout << dec << i << "\t";  // 10진수 출력
    cout << oct << i << endl;  // 8진수 출력
  }

  return 0;
}


3. 1바이트 범위의 정수를 입력 받은 다음, 각각의 비트가 켜져 있으면 1, 꺼져 있으면 0을 출력하세요.

#include <iostream>
using namespace std;

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

  while(1)
  {
    cout << "정수 입력(0~255): ";
    cin >> num;

    if(-1 == num)
    {
      cout << "프로그램 종료" << endl;
      break;
    }

    for(tmp = 1 ; 0 != tmp ; tmp <<= 1)
    {
      if(num & tmp)  // 각 자리 수가 1이면 
      {
        cout << cnt << " : 1" << endl;
      }
      else
      {
        cout << cnt << " : 0" << endl;
      }
      cnt++;
    }
    cnt = 0;
  }

  return 0;
}


4. 난수를 발생하는 rand 함수를 활용하여 주사위를 10번 던졌을 때 주사위 값을 출력하시오.

#include <iostream>
using namespace std;

int main()
{
  int num;

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

  cout << "(주사위 값 : 1 ~ 6)" << endl;
  for(int i = 0 ; 10 > i ; i++)
  {
    num = (rand() % 6) + 1;
    cout << "dice value: " << num << endl;
  }
  return 0;
}


+ Recent posts