함수와 재귀함수 하노이의 탑 부분 질문
안녕하세요 선생님
코드 관련 궁금한 부분이 있어서 질문드립니다.
하노이의 탑 코드를 보면
#include <stdio.h>
void hanoi(int n, char from, char to, char aux) {
if (n==1) {
printf("디스크 1을 %c에서 %c로 이동\n", from, to);
return;
hanoi(n-1, from, aux, to);
printf("디스크 %d을(를) %c에서 %c로 이동\n", n, from, to);
hanoi(n-1, aux, to, from);}
int main() {int num = 3;
hanoi(num, 'A', 'C', 'B');return 0;
}
으로 되어있는데요.
void hanoi로 함수를 호출하게 되면 n이 1이라면
void hanoi(int n, char from, char to, char aux) {
if (n==1) {
printf("디스크 1을 %c에서 %c로 이동\n", from, to);
return;
첫번째 if 조건 절로 호출하게 되지만
만약 1이 아니면 아래 함수를 호출하는 거라면
else 등의 함수가 있어야 아래 함수로 내려갈 수 있는것이 아닌가 궁금한데요.
void 함수에서는 요런부분이 생략이 가능한건지 아니면 제가 놓치고 있는 부분이 있는지 궁금합니다.
답변 1
0
안녕하세요. 제가 질문을 제대로 이해했는지 모르겠습니다.
if문은 그 자체로 여러번 써도 됩니다.(굳이 else를 쓰지 않아도 됩니다.)
if-else와의 유일한 차이는 if에 해당하면 else if와 else를 수행하지 않는다는 것입니다.
if문만 여러개 작성해도 문제가 없습니다. 다만 모든 조건을 다 봐야하니 약간 컴퓨팅 낭비가 있을 수는 있습니다.
감사합니다.
정처기 2026-3 실기 문의
0
88
2
정처기 실기 3회 컴싸 사용 여부
0
56
1
모의고사 1 회 2번문제 중
0
74
2
26-2 이론문제 재탕
1
56
1
26-2년도 코드문제
0
38
0
26-2 코드문제
0
44
1
15분 48초 질문
0
61
2
26-1년도 이론문제 재탕
0
68
1
26-1년도 코드문제 재탕
0
48
0
이론재탕만 눈치챘어도
0
77
1
25-3년도 이론문제 재탕
0
59
1
25-3년도 코드문제 재탕
0
43
0
출력값 문의
0
56
2
25-2 분기커버리지
0
49
0
25-2 이론 재탕
0
70
1
25-1 이론 재탕
0
54
1
서브넷 마스크
0
55
2
모의고사 1회 계산문제 2개 맞았는데
0
70
2
업캐스팅 문제 예시 4번 부모 호출
0
51
2
모의고사 자료 해설이 너무 불친절하네요.
0
96
2
부모의 생성자 출력 관련
0
50
2
24-3 이론파트 재탕문제
0
58
0
누락코드
0
47
1
다차원 배열 포인터 질문있습니다
0
72
3





