#include <stdio.h>
int factorial(int a)
{
return a == 0 ? 1 : 2*factorial(a - 1);
}
int main()
{
int k, n;
printf("상수 n 입력 : ");
scanf("%d", &n);
for (k = 0; factorial(k) <= n; k++)
{
factorial(k);
printf("%d\n", factorial(k));
}
printf("공식을 만족하는 k의 최대값은? %d", k);
return 0;
}
2^k <= n
이 공식을 만족하는 k를 찾는 알고리즘인데...
분명 for문 안에 있는 printf에서는 factorial(k)의 값이 제대로 나오는데
왜 밑에 printf에서는 k의 최대값이 k+1이 되서 나올까요?
아 해결함. for문 끝나고 무조건 k에는 k++가 되서 1이 무조건 증가하네... 난 지금까지 k<=10;k++; 이거면 k가 10까지 밖에 증가안하는줄 알았음
2분만에..