전체 글
-
전처리기c++ 2020. 1. 13. 20:34
전처리기(preprocessor)는 프로그램을 컴파일할 때 컴파일 직전에 실행되는 별도의 프로그램이다. 전처리기가 실행되면 각 코드 파일에서 지시자(directives)를 찾는다. 지시자(directives)는 #으로 시작해서 줄 바꿈으로 끝나는 코드다. 전처리기는 컴파일러가 실행되기 직전에 단순히 텍스트를 조작하는 치환 역할을 하기도 하고, 디버깅에도 도움을 주며 헤더 파일의 중복 포함도 방지해주는 기능을 가진다. #define(매크로) #define PI 3.14라고 가정한다면 #define을 전처리기 지시자 라고 하며,PI를 매크로 상수 라고 한다 #include using namespace std; #define MY_NUMBER 9//매크로 MY_NUMBER이라는 문자를 만나면 9로 바꿔버림 (..
-
namespacec++ 2020. 1. 13. 19:59
namespace는 같은 이름을 충돌하지 않게 하는 문법이다. 수 많은 라이브러리를 include했을때 서로 다른 라이브러리에 같은 이름의 형식이나 개체가 있을 때 충돌하지 않게 namespace로 감싸 충돌하지 않게 한다. #include using namespace std; int add(int a, int b)//a팀의 add { return a + b; } int add(int a, int b)//b팀의 add { return a + a + b; } int main() { a(3, 4); } 예를들어 위와 같이 개발 회사에서 하나의 프로젝트를 수행하기위해 개발a팀과 b팀이 파트를 나눠서 작업물을 수행하고있다. 마감 날짜가 나가와 각 팀의 작업물을 통합하려고 한다 그런데 이때 a팀과 b팀에서 add..
-
헤더 가드c++ 2020. 1. 13. 18:29
함수를 두 번 이상 정의하는 프로그램은 컴파일 에러가 발생한다 #include using namespace std; void doSomething() { add(1, 2); } int add(int a, int b) { return a + b; } int main() { doSomething(); return 0; } 다음과 같은 소스 파일이 있다. 이때 add함수와 doSomething 함수를 헤더파일로 만들어서 include해서 사용하겠다. int add(int a, int b) { return a + b; } #include "add.h"; void doSomething() { add(1, 2); } #include #include "new.h"; #include "add.h"; using name..
-
재귀함수 - 2진수출력algorism 2020. 1. 10. 19:32
입력값을 받고 그 값을 2진수로 출력하여라 단 이때 재귀함수를 사용하여 출력하시오. 입력예제 11 출력예제 1011 #include #include using namespace std; int N = 0; int a=1; void divi(int num) { int tmp = num; if (num ==1)return; else { num = num / 2; divi(num); a = tmp % 2; if (a == 0)//다 나눠졌을때 만 나눈 값 출력 { cout N; divi(N); }
-
재귀함수 알고리즘-STACK으로algorism 2020. 1. 10. 19:16
1.N의값을 3을 받는다 그러면 print(3)함수가 호출된다 2.num이 3이기때문에 else로 빠지고 print(3-1), 즉 print(2)가 호출된다 이때, print(3)-10라인까지 수행했다는것을 stack에 기록함 3.print(2)가 호출되고 if문을 넘고 else로빠져 print(2-1)즉 print(1)이 수행이때도 마찬가지로 print(2)-10라인까지 수행했다는것을 stack에 기록 4.print(1)가 호출되고 또 다시 print(1-1)즉 print(0)이 호출됨 마찬가지로 print(1)-10을 stack에 기록 5.print(0)호출후 return되고 함수로 종료됨 6.그후 수행하지 못한 즉 stack에 쌓여있는 함수들을 차곡차곡 하나씩 빼면서 수행해줌 1)print(1) -..
-
소인수 분해 응용algorism 2020. 1. 10. 15:23
임의의 N에 대하여 N!은 1부터 N까지의 곱을 의미한다. 이는 N이 커짐에 따라 급격하게 커진 다. 이러한 큰 수를 표현하는 방법으로 소수들의 곱으로 표현하는 방법이 있다. 먼저 소수는 2, 3, 5, 7, 11, 13... 순으로 증가함을 알아야 한다. 예를 들면 825는 (0 1 2 0 1)로 표현이 가능한데, 이는 2는 없고 3은 1번, 5는 2번, 7은 없고, 11은 1번의 곱이라는 의미이다. 101보 다 작은 임의의 N에 대하여 N 팩토리얼을 이와 같은 표기법으로 변환하는 프로그램을 작성해 보자. 출력은 아래 예제와 같이 하도록 한다. ▣ 입력설명 첫 줄에 자연수 N(3 N; vector a(N+1);//동적배열 할당 for (int i = 2; i