배열 및 조합 출력 에 따 른 상황 설명
#include <stdio.h>
//
int swap(int m,int n)
{
if(n==1)
return m-n+1;
return m*swap(m-1,n-1);
}
int main()
{
int m=5,n=4;
printf("%d",swap(5,4));
}
조합 계산 3 개 A,2 개 B 는 몇 가지 배열 문 제 를 구성 할 수 있 습 니까?사고방식 1:
#include <stdio.h>
/*
3 A,2 B
A B A_ _ _ _ B_ _ _ _
A
2 A ,2 B A_ _ _ _ +B_ _ _ _
*/
int f(int m, int n)
{
if(m==0 || n==0) return 1;
return f(m,n-1)+f(m-1,n);
}
void main ()
{
printf("%d ",f(3,2));
}
사고방식 2:
#include <stdio.h>
#include <math.h>
/*
(m+n)! ,
, 。
, , , ,
m! n!, (m+n)!/(m!*n!) 。
m A n B (m+n)!/(m!*n!)
m-1 A n-1 B (m+n-2)!/((m-1)!*(n-1)!)
m A n B =m-1 A n-1 B *(m+n)*(m+n-1)/(m*n)
(m A n B ) (m-1 A n-1 B)
*/
int f(int m, int n)
{
if(m==0 || n==0) return 1;
return f(m-1,n-1)*(m+n-1)*(m+n)/m/n;
}
void main ()
{
printf("%d ",f(3,2));
}