수학2
-
각 자리수의 역과 합(Number Reverse)보관함 2020. 2. 5. 23:36
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학2의 각 자리수의 역과 합을 풀어보겠습니다. 1009 : 각 자리수의 역과 합(Number Reverse) 이 문제에서 주의할 것은 한 가지 밖에 없는데 1의 자리에서 부터 값을 더하고 10을 곱하는 과정에서 오버플로우가 발생할 수 있다는 점 입니다. 그러므로 10을 곱하기 전 남은 자리수를 체크한 뒤 처리해야 합니다. #include using namespace std; int GetReverse(int n); int GetSum(int n); int main(void) { int n; while (true) { cin >> n; if (n ==..
-
JUNGOL 실력키우기 수학2 - 이진수 | 10진수를 2, 8, 16진수로 | 진법 변환보관함 2020. 2. 5. 23:35
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학2의 진법 변환 시리즈를 풀어보겠습니다. 2814 : 이진수 기본적으로 입력은 최대 30자리가 넘기 때문에 문자열로 받아야 합니다. 이후에는 가장 마지막 자리에서부터 처음 까지(end -> 0)를 순회하며 1부터 2씩 곱해가며 해당 값과 곱해 값을 누적하면 됩니다. 저는 reverse_iterator를 사용했는데 단순히 bStr.Size() - 1에서 1씩 감소시켜 0 이상까지 반복하는 방법도 있습니다. #include #include using namespace std; int main(void) { string bStr; cin >> bStr;..
-
JUNGOL 실력키우기 수학2 - 소수와 합성수 | 소수 | 소수 구하기 | 소수의 개수보관함 2020. 2. 5. 23:33
기초 다지기에서 배운 내용을 응용하여 문제를 해결해야 하는 실력 키우기입니다. 실력 키우기는 비슷한 문제 유형별로 묶어서 풀어보겠습니다. 이번 포스팅에서는 수학2의 소수 시리즈를 풀어보겠습니다. 2811 : 소수와 합성수 이 문제는 단순하게 2부터 입력된 숫자까지를 돌면서 나눠지는 값이 있는지를 확인하여 나눠지는 경우 소수로 판단할 수도 있으나 조금 더 생각하면 범위를 줄일 수 있다는 것을 알 수 있습니다. 숫자를 나눌 수 있는 가장 큰 값은 해당 숫자의 루트 값 까지라는 것입니다. 즉, 2부터 해당 숫자까지를 나누는 게 아니라 해당 숫자의 루트까지만 나눠서 확인하면 되는 것입니다. 그렇게 하면 최대로 나누는 횟수는 10억 회가 아니라 10억의 루트 값인 31,622 회가 됩니다. #include #in..