C C++166 [C/C++] 코드업 1902 : (재귀 함수) 1부터 n까지 역순으로 출력하기 문제풀이 앞선 1부터 n까지 출력하는 문제와 동일한 원리임. 재귀 함수의 핵심은 1) 재귀 함수 내에 if 조건과 return문을 통해 재귀 함수를 멈춰주는 것 2) 다음 함수를 조건에 맞게 적절하게 불러주는 것 이 문제는 n에서 1까지 출력하는 것이므로 1을 만나게되면 재귀 함수 호출을 그만두도록 조건을 걸면 됨. 소스코드 #include #include #include using namespace std; int n; void recursive(int a) { if (a==1) { cout 2022. 10. 4. [C/C++] 코드업 1901 : (재귀 함수) 1부터 n까지 출력하기 문제 풀이 이 문제는 1부터 n까지 재귀 함수를 통해 출력하는 문제임. 재귀 함수의 핵심은 1) 재귀 함수 내에 if 조건과 return문을 통해 재귀 함수를 멈춰주는 것 2) 다음 함수를 조건에 맞게 적절하게 불러주는 것 이렇게 두 가지라고 할 수 있고, 이 원리는 다른 재귀함수 문제에도 통용됨. 이 문제는 n까지 출력하는 것이므로 n을 만나게되면 재귀 함수 호출을 그만두도록 조건을 걸면 됨. 문제풀이 #include #include #include using namespace std; int n; void recursive(int a) { if (a==n) { cout 2022. 10. 4. [C/C++] 백준 11653번 소인수분해 문제 풀이 소인수 분해를 어떻게 하는지에 대해 서임. 꽤나 유의미한 문제라고 생각됨. 풀이에서 크게 배울점은 while문과 while문 안에서 if-break문 사용하는 것임. 실제 풀이에서 중요부분은 아래와 같다. 1) while문은 항상 참으로 둠. 2) 이 때 i=2로 가장 작은 소수로 시작함. 3) 2로 나누어 떨어지면 N값을 N/2 연산함. 그리고 나누어졌으므로 2를 출력함. 4) 그리고 다시 while문으로 들어와 다시 N/2된 값을 2로 나눠 봄. 이때 나누어지면 N/2를 다시 2로 나누어 연산함. 그리고 나누어졌으므로 2를 출력함. 3) 만약 나누어 떨어지지 않으면 i=2에서 i++;하여 i를 3으로 올림. 즉, 최대한 나누어질때까지는 while문으로 계속해서 나누는 것임. 그리고 출력하는.. 2022. 10. 4. [C/C++] 팩토리얼 구현하기 (재귀함수의 이해) 팩토리얼 구현 팩토리얼은 특정 값에서 1까지를 모두 곱하는 연산을 의미함. 예를 들어 10!이면 10 팩토리얼이라고 읽는 데, 10*9*8*7*.....*2*1까지 모두 곱한 연산을 하게 됨. 그렇다면 가장 기본적으로는 손쉽게 for문을 통해 이 값을 구할 수 있음 팩토리얼 for문 구현 부가적인 것 다 제외하면 아래 내용이 핵심임. 단순하게 1부터 a까지 곱하는 것임. int factorial(int a) { int res=1; if (a==0) return 1; else { for (int i=1; i 2022. 9. 29. 이전 1 ··· 5 6 7 8 9 10 11 ··· 42 다음