배열 및 조합 출력 에 따 른 상황 설명

정렬

#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));
}

좋은 웹페이지 즐겨찾기