#include <stdio.h>
int factorial(int a)
{
    int static b = 1;    // b의 최솟값 1
    if (a = 0)    //    a가 0일때 b값 반환
        return b;
    b= 2 * a;
    factorial(a - 1);    //재귀
}

int main()
{
    int n, k;
    scanf_s("%d", &n);
    for (k = 1; factorial(k) <= n; k++)    //    k의 값을 1로 초기화 및 factorial(k)값이 n값보다 같거나 작은 최대값이 나올때 까지 k값 1증가
        factorial(k);
    printf("공식을 만족하는 k의 최대값은? %d", factorial(k));
    return 0;
}

인터넷에 있는 알고리즘 문제인데 원래는 그냥 k*=2해서 풀면 쉬운건데

재귀함수로 해보려고하닌까 재귀함수에서 stack overflow 발생합니다...

뭐가 문제일가요.. 탈출문도 제대로 되어있고 for문도 제대로 되어있는데....

도움좀 주세요...