#include <stdio.h>
long long sum=0;
long long c[20]={0};
void num(int b); //개수 지정
int search(int a, int b, int n, int m); //a번으로 나눠 버튼을 누를 때 경우의 수
int c_cal(int x, int y); //조합 결과 수
int main(void)
{
int b;
scanf(" %d", &b);
num(b);
//printf("\n---------------------\n");
printf("%d", sum);
return 0;
}
void num(int b)
{
int i;
for(i=1; i<=b; i++)
{
search(i, b, 1, 0);
}
}
int search(int a, int b, int n, int m)
{
if(n>a)
{
long long mm=1;
for(int i=1; i<=a; i++)
{
mm*=c[i];
//printf("%d * ", c[i]);
}
//printf("= %d\n", mm);
sum+=mm;
return 0;
}
int i;
for(i=1; i<=(b-m); i++)
{
c[n]=c_cal(b-m, i);
search(a, b, n+1, m+i);
}
return 0;
}
int c_cal(int x, int y)
{
int i, a=1, b=1;
for(i=x; i>(x-y); i--)
a*=i;
for(i=y; i>1; i--)
b*=i;
return (a/b);
}
2018.06.16 10:27
정올 - 실전대비 - 비밀번호(1344)
조회 수 245 추천 수 0 댓글 0