본문 바로가기

정보올림피아드&알고리즘

"각 자리수의 역과 합"부터 "실수의 이진수"까지 보호되어 있는 글입니다. 더보기
실수의 이진수 실수의 이진수 문제 정민이는 학교에서 십진수인 실수를 이진수로 바꿔오라는 숙제를 받았다. 정수를 이진수로 바꾸는 것은 알았으나, 실수를 이진수로 바꾸는 방법은 몰라서 선생님께 물어보니, 아래와 같은 자료를 주셨다. 위의 내용을 참고하여 10진수 실수의 이진수를 구하여라. (소수점 4번째 자리까지) 입력형식 십진수 N은 0 < N < 100의 범위안에서 입력된다. 입력 예 출력 예 27.625 11011.1010 입력 예 출력 예 1.123456 1.0001 입력 예 출력 예 5.625 101.1010 더보기
진법 변환 진법 변환 문제 Korean English A진법 수 S를 입력 받아 B진법 수로 출력하는 프로그램을 작성하시오. S에 사용되는 값은 0 ~ 9, A ~ Z이다. (2 ≤ A, B ≤​ 36) ( 0≤​ S ≤​ 263-1 ) 입력형식 입력은 100개 이하의 테스트 케이스가 행으로 구분하여 주어진다. 테스트 케이스의 끝에는 0이 주어진다. 각 테스트 케이스에는 세 수 A, S, B가 공백으로 구분되어 주어진다. 출력형식 각 테스트 케이스에 대하여 A진법수 S을 B진법 수로 변환한 결과를 행으로 구분하여 출력한다. 입력 예 2 11010 8 2 10110 10 10 2543 16 16 ABC 8 0 출력 예 32 22 9EF 5274 Hint! [ Horner's Method] 2진수 1101을 자리수별 .. 더보기
10진수를 2,8,16진수로 10진수를 2,8,16진수로 문제 10진수를 입력 받아서 2, 8, 16진수로 바꾸어 출력하는 프로그램을 작성하시오. 입력형식 입력의 첫줄에는 10진수 N(1≤N≤100,000)과 바꿀 진수 B(2, 8, 16)가 공백으로 구분하여 입력된다. 16진수에서 10이상의 수는 순서대로 'A', 'B', 'C', 'D', 'E', 'F'로 나타낸다. 출력형식 입력받은 10진수를 B진수로 바꾸어 출력한다. 입력 예 출력 예 27 2 11011 입력 예 출력 예 27 16 1B 입력 예 출력 예 27 8 33 더보기
이진수 이진수 문제 컴퓨터는 내부적으로 0과 1 두 개의 숫자만을 사용하여 모든 프로그램이 동작된다. 이렇게 두 개의 숫자만으로 이루어진 수를 이진수라 한다. 2진수를 입력받아 10진수로 변환하여 출력하는 프로그램을 작성하시오. 입력형식 0과 1로만 이루어져 있는 30자리 이하의 2진수를 입력받는다. 출력형식 입력된 2진수를 10진수로 변환하여 출력한다. 입력 예 10101 출력 예 21 Hint! 10진수란? 어떤 수를 0부터 9까지 10개의 숫자로 나타내는 표시방법을 10진법이라 하고 이렇게 표시된 수를 10진수라 한다. 한자리에서 10개가 넘으면 묶어서 자리올림이 발생된다. 10진수 12345는 다음과 같이 식으로 표시할 수 있다. 12345 = 1*104 + 2 * 103 + 3 * 102 + 4*101.. 더보기
소수의 개수 소수의 개수 문제 소수(prime number)란 1보다 큰 자연수 중 1과 자기 자신 두 개만을 약수로 갖는 수를 말한다. 자연수 M과 N을 입력받아 M부터 N까지 소수의 개수를 구하여 출력하는 프로그램을 작성하시오. 입력형식 자연수 M과 N이 공백으로 구분되어 주어진다. (1 ≤ M ≤ N ≤ 2,000,000) 출력형식 M이상 N이하의 자연수 중 소수가 몇 개인지 구하여 출력한다. 입력 예 10 100 출력 예 21 Hint! 코드1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 int prime(int x) { int i; for (i=2; i*i 더보기
소수 소수 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최소값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100이 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최소값은 61이 된다. 입력형식 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 같거나 작다. 출력형식 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최소값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. 입력 예 60 100 출력 예 .. 더보기
소수 구하기 소수 구하기 문제 소수(prime number)란 2이상의 수로써 1과 자기 자신 외에는 약수를 갖지 않는 수를 의미한다. 임의의 M값에 대하여 M에 가장 가까운 소수를 구하는 프로그램을 아래 조건에 따라 작성한다. 입력형식 첫 번째 줄에는 처리해야 할 수의 개수 N을 입력 받는다. (N은 100이하의 정수) 다음 줄에는 처리해야할 수 N개(M1부터 Mn까지)를 한 줄에 한 개씩 차례로 입력 받는다. (Mi 는 1,000,000 이하의 양의 정수) 데이터의 크기가 주어진 범위를 벗어나는 입력은 없다. 출력형식 임의의 값 Mi에 대해 차이가 가장 작은 소수를 구하여 출력한다. 만약 차이가 같은 소수가 여러 개이면 작은 수부터 모두 출력한다. 출력되는 값은 1이상 1,000,000이하의 소수이어야 한다. 입.. 더보기