본문 바로가기

C or C++

재귀함수란 무엇인가? 재귀함수란 무엇인가? 재귀 함수(recursive function) 란? 직간접적으로 자기 자신을 호출시키는 함수이다. 재귀함수가 쓰일때는? 불필요한 변수를 줄이고 반복문을 사용하지않고도 반복문처럼 사용할때 쓰이는것이 재귀함수이다. 재귀함수 사용시 유의할점은? 반드시 끝나는 지점을 정해줘야한다. 그렇지않게되면 함수가 무한적으로 돌기때문에 프로그램이 죽을수가있다. 재귀함수는 반복문보다는 빠르지않는것으로 안다 그러므로 불필요하게 사용하지않는것이 좋다. 큰값은 재귀함수로처리하지말고 반복문으로 처리하는것이 좋다 간단한 재귀함수 예 1부터 n까지 출력하는 프로그램을 만들때 재귀함수로는 이런식으로 만들수가있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include void re(int a,in.. 더보기
C/C++ 팩토리얼 재귀함수 재귀함수를에대한 설명 -> Click me 팩토리얼을 재귀함수로 이런식으로 짤수가있다. 팩토리얼에대한 자세한설명은 아래링크를 참조하길바란다. 팩토리얼 설명 1 2 3 4 5 6 7 8 9 10 11 12 13 #include using namespace std; int rr(int n) { if(n==0) return 1; return n * rr(n-1); } int main() { int n; cout n; cout 더보기
C/C++ 1~n까지 총합을 구하는 재귀함수 재귀함수를에대한 설명 -> Click me 1~n까지 총합을 구하는 프로그램을 재귀함수로 만들어보자 1 2 3 4 5 6 7 8 9 10 11 12 13 #include using namespace std; int rr(int n) { if(n 더보기
C/C++ 배열 회전(숫자로테이션) 이문제는 codeup.kr 에서 나온문제이지만 교수님들이 과제로 내기 딱좋은 과제다. 반복문을 얼만큼 잘활용하냐 알수있는 문제인거같다. 문제는 요렇다 input값 첫줄에는 입력받을 데이터의 갯수 input값 두번째줄에는 데이터를 넣는것이다. 출력값은 사진처럼 다음줄이 될때마다 맨앞에있던것은 뒤로가고 그다음부터 출력이런식이다. 아주 과제로 내기 딱좋다. 나는 C++을 사용해짯으며 C++이나 C로짜나 짤수만잇으면 좋은것이다 다른 사람들은 vector(벡터)를 사용해서 짯는데 나는 벡터를 사용할줄몰라서 그냥짜봣다. 내코드를 요렇다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 #include using namespace std; int main() { i.. 더보기
codeup.kr 1503 문제 오랜만에 잠이안와서 코드업을 풀어봤다 문제번호는 1503번문제 지그재그 배열출력문제다 쓸대없이 길어서 자괴감든다. 문제는 요런식으로 출력을 지그재그로 출력하라는 모양이였는데 처음에는 그냥일반적으로 출력해서 틀렷다 그러다가 지그재그로 고치는데 좀걸렸다 오랜만에 푸니깐 머리가 안돌아가나보다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 #include int f(int a,int b,int max) { int temp=a-b; if(max!=temp) { for(int i=a;i>temp;i--) { std::cout 더보기
SetConsoleTextAttribute API SetConsoleTextAttribute API 위 API는 콘솔창의 글자색을 변경해주는 API이다 기존에 썻던 글자색이 맘에안들거나 무지개색으로 출력하고싶을때는 이 API를 사용해서 찍어보는것도 좋을거같다 먼저 함수원형을 살표보자 1 2 3 4 5 6 BOOL WINAPI SetConsoleTextAttribute( _In_ HANDLE hConsoleOutput, _In_ WORD wAttributes ); Colored by Color Scripter cs 함수원형은 이렇다 첫번째 인자로 콘솔창의 핸들을받고 두번째 인자로는 색을 받는거같다 색의 표를 만들어보면 번호 색깔 0 검정 1 어두운 파랑 2 어두운 초록 3 어두운 하늘 4 어두운 빨강 5 어두운 보라 6 어두운 노랑 7 회색 8 어두운 회.. 더보기
SetConsoleCursorPosition API SetConsoleCursorPosition 이API는 커서를 원하는 좌표로 이동시켜주는 API이다. 이API를 쓰지않고 cls를 통해 화면을지우고 다시 찍어주게되면 처음부터 끝까지 다시 찍는것이기때문에 사용할떄 화면이 흔들리거나 이쁘지가 않을수가있다. 하지만 SetConsoleCursorPosition 를 사용하면 해당좌표만가서 원하는 좌표에 값만다시 처리하기때문에 아주유용하다. 함수원형을 살펴보면 1 2 3 4 BOOL WINAPI SetConsoleCursorPosition( _In_ HANDLE hConsoleOutput, _In_ COORD dwCursorPosition ); Colored by Color Scripter cs 첫번째 인자로 핸들을받고 두번째인자로 COORD 구조체로 좌표값을 받.. 더보기
codeup.kr 1153번 문제 codeup.kr 1153번 문제밑에 1151,1152 문제랑 비슷한문제인데이번엔 a b 를만들고 a부터 b까지 하라는거네요 이런식으로 하라는거같네요. 쉬운듯 햇는데 a 랑 b 가 서로같을때도 출려하라해서밑에 처럼썼는데..#include void main(){int a;int b;int i; scanf("%d %d",&a,&b);if((a>0)&&(b>0)) {if(a 더보기
codeup.kr 1152번 문제 codeup.kr 1152번문제 이번문제는 1151 응용 문제같음 4번만에 성공햇네요ㅋ.ㅋ100까지 하는줄알고하다가 틀리고표현오류에서 2번틀리고 4번째떄 성공해버림 숫자하나를 입력받아서 1부터 입력받은수까지 출력하는거였네요 1 더보기
codeup.kr 1151 문제 coudeup.kr 1151 문제 1~100까지 한칸씩 띄우면서 출력하라고 하네요 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 .... 100 10부터 붙어서 되내요 그럼 코드를 바꿔서하면 될듯하네용 이제된듯하네요 는 표현에러 ㅡㅡ ㅋㅋㅋㅋ 아마 1 앞에 공백잇어서 틀렷다고한듯하네요 더보기