도전 1
10진수 정수를 입력 바다서 16진수로 출력하는 프로그램을 작성해 보자. 이는 서식문자의 활용에 대한 문제이므로 쉽게 해결할 수 있을 것이다.
도전 2
프로그램 사용자로부터 두 개의 정수를 입력 받아서 구구단을 출력하는 프로그램을 작성해 보자. 예를 들어서 프로그램 사용자가 3과 5를 입력하면 3단, 4단, 5단이 출력되어야 하고, 2와 4를 입력하면 2단, 3단, 4단이 출력되어야 한다.
단 한가지 조건이 있다. 사용자는 두 개의 숫 자를 입력 할 때에 입력 순서에 자유로워야 한다. 즉 3과 5를 입력하건 5와 3을 입력하건 프로그램은 같은 결과를 출력해야 한다.
GUIDE ↓
두 개의 정수를 인자로 전달받아서 두 수 사이의 구구단을 출력하는 함수를 정의하고, main함수에서이 함수를 출력하는 형태로 구현해 보자.
도전 3
두 개의 정수를 입력 받아서 최대 공약수(GCD)를 구하는 프로그래을 작성 해 보자.
실행의 예
두 개의 정수 입력 : 6 9
두 수의 최대공약수 : 3
GUIDE
정수 num1과 num2의 최대 공약수는 num1이나 num2보다 클 수 없다. 그리고 num1과 num2의 최대 공약수로 num1 또는 num2를 나누면 나머지가 0이 된다. 이 두 가지 특성을 이용하면 최대 공약수를 쉽게 구할 수 있다. 참고로 여유가 된다면 인터넷에서 '유클리드 호제법'이라는 것을 조사해보자. 그리고 이를 기반으로 문제의 해결을 한번 더 시도하기 바란다.
도전 4
필자가 좋아하는 것 중 하나가 금요일 저녁 퇴근길에 DVD나 만화책을 잔뜩 빌리고, 동네 슈퍼에 들려서 군것질거리를 사가지고 집에 들어가는 것이다. 오늘은 금요일이다. 현재 필자의 주머니에는 5천원이 있다. DVD 한편을 빌리면 3,500원이 남는다. 슈퍼에 들려서 크림빵(500원), 새우깡(700원), 콜라(400원)를 사려한다. 잔돈을 하나도 남기지 않고 이 세가지 물건을 하나 이상 반드시 구매하려면 어떻게 구매를 진행해야 하겠는가? 물론 여기에는 여러 가지 경우의 수가 있을 것이다. 필자가 어떠한 선택을 할 수 있는지 여러분이 제시해 주기 바란다.
실행의 예
현재 당신이 소유하고 있는 금액 : 3500
크림빵 1개, 새우깡 2개, 콜 라 4개
크림빵 2개, 새우깡 3개, 콜 라 1개
크림빵 4개, 새우깡 1개, 콜 라 2개
어떻게 구입하시겠습니까?
도전 5
10개의 소수(Prime Number)를 출력하는 프로그램을 작성해 보자. 참고로 정수 num이 1과 num으로 밖에 나눠지지 않는다면 이는 소수에 해당한다. 따라서 3은 소수이다. 그러나 4는 소수가 아니다. 1, 2, 4로 나눠지기 때문이다.
실행의 예
2 3 5 7 11 13 17 19 23 29
도전 6
프로그램 사용자로부터 초(second)를 입력 받은 후에, 이를 [시, 분, 초]의 형태로 출력하는 프로그램을 작성해 보자.
실행의 예
초(second) 입력 : 3615
[h:1, m:0, s:15]
도전 7
프로그램 사용자로부터 숫자 n을 입력 받는다. 그리고 나서 다음 공식이 성립하는 k의 최댓값을 계산해서 출력하는 프로그램을 작성해 보자.
실행의 예
상수 n 입력 : 256
공식을 만족하는 k의 최댓값은 8
GUIDE
수식이 등장했다고 해서 두려워하지 말자. 위의 식을 그대로 반복문으로 옮겨 놓으면 쉽게 해결되는 문제이다.
도전 8
2의 n승을 구하는 함수를 재귀적으로 구현해 보자. 그리고 그에 따른 적절한 main함수도 구현해 보자. 참고로 재귀함수의 구현이 처음에는 어려운 편이기 때문에 여기서는 쉬운 문제를 제시하였다(본문에 소개한 예제보다도 쉬운 문제다.)
실행의 예
정수 입력 : 8
2의 8승은 256
'프로그래밍 > C' 카테고리의 다른 글
열혈 C 프로그래밍 Chapter11-2 (0) | 2015.07.26 |
---|---|
열혈 C 프로그래밍 Chapter11-1 (0) | 2015.07.26 |
열혈 C 프로그래밍 Chapter09-2 (0) | 2015.07.22 |
열혈 C 프로그래밍 Chapter09-1 (0) | 2015.07.21 |
열혈 C 프로그래밍 Chapter08-3 (0) | 2015.07.21 |