#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);
}
여기서 맨마지막에 y-1하는게
위에 함수호출문에서 i를 y로 대입하잖아
여기서 i가 4면 y-1를해도 3인데 어케 0이돼서 종료하는거임??
리턴 x * power(x,y-1)하면 y만 0될때까지 계속 반복되는거냐
power(2, 2) 호출했을 때, 2 * power(2, 1)이 호출되고, power(2, 1)은 2 * power(2, 0)을 호출하지. power(2, 0)은 1이고.
합치면 2 * 2 * 1 = 4
#include<stdio.h>long power(int, int);void main(){ int i; for (i = 0; i <= 5; i++) { printf("2 ^ %d = %d\n", i,power(2, i)); }}long power(int x, int y){ if (y == 0) return 1; else return x * power(x, y - 1);}
재귀함수 자체를 모르는거 같은데
아 이해가될라고하네요 ㄱㅅㄱㅅ