#include<stdio.h>
long power(int, int);
void main()
{
long p;
int i;
for(i=0;i<=5;i++)
{
p = power(2,i);
printf("2 ^ %d = ] n",i,p);
}
}
long power(int x,int y)
{
if(y == 0)
return 1;
else
return x * power(x,y-1);
}
이건 2의 제곱을 구하는 코드인데
여기서 맨마지막 retrun x * power(x,y-1); 이부분에
y-1를 해야하는이유와 안하면 어떻게돼는지를 서술하시오.
이거모르면 c언어 다시공부하셈
재귀함수로 구하는데 y-1이아니라 y 만있으면 power(x,y)를 무한히 호출한다
그 이유는??
돼->되
뭘 이유는이야 y가 0이 돼야 재귀호출을 그만두는데 y-1을 안하면 9이 될수가 없잖아
9->0 오타
재귀호츨이라고 좀 If(y==0) 해서 1리턴하고 전에호출한 함수에서 결과값*x를 곱하고 리턴하고 또 전에 호출한 함수에서 결과값*x를해야하는데 y가 0이 안되니 무한히호출하지
아 헷갈렷는데 감사