#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문도 제대로 되어있는데....
도움좀 주세요...
a==0으로 해도 똑같음.
아시발.. 올리고나니 몇개 잘못되어있는게 보인다..
factorial(k)는 무조건 0을 반환하자너
닉값 ㅅㅌㅊ
int factorial(int a) return a <=1 ? 1 : factorial(a-1) * a
해결완
감사합니다 ㅜㅜ
노무현 응디 따악
반환을 못해 재귀중입니다. 제발 한번만 읽어주세요