#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)
조회 수 206 추천 수 0 댓글 0