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;
}