2의 n승 재귀함수로 구현하는 문제..
해비치
2023.04.01
질문 제목 :2의 n승 재귀함수로 구현하는 문제..질문 요약 :질문 내용 : #include stdio.hint no (int num)
{
int result = 2; if(num1)
{
result *= 2;
num--;
no(num);
}
else
{
return result;
}
}int main(void)
{
int n, sum; printf(2의 n승 구하기, n은?);
scanf(%d, &n); sum = no(n); printf(\n계산결과:2^%d=%d\n, n, sum); return 0;
} 이렇게 짯는데.. n에 뭘넣어도 2가 나오네요 ㅠㅠ왜그런건가요 ??
-
한란
감사합니다~ 그것때문이었군요
-
하련솔
result 는 지역변수라 no 가 호출 될 때마다 자신만의 스택을 생성하고 스택 각각에 result 변수를 생성하는데,
이 result 변수는 모두 독립된 변수들이니까요.
요렇게 구현을 해보시죠.
if (num 1) // base condition(종료조건)
{
\treturn 1;
}
return no(num - 1) * 2;