>  기사  >  백엔드 개발  >  C 언어에서 이항 계수의 최대값은 얼마입니까?

C 언어에서 이항 계수의 최대값은 얼마입니까?

WBOY
WBOY앞으로
2023-09-12 14:17:051385검색

C 언어에서 이항 계수의 최대값은 얼마입니까?

양의 정수 'N'이 주어졌습니다. 모든 이항 계수 중에서 가장 큰 계수항을 찾아야 합니다.

이항 계수의 순서는 nC0, nC1, nC2, …, nCr, …, nCn입니다. -2, nCn-1, nCn

nCr의 최대값을 구합니다.

<sub>n</sub>C<sub>r</sub> = n! / r! * (n - r)!

Input - N=4

Output - 최대 계수 - 6

Explanation - 4C0= 1, 4C1 = 4, 4 C 2 = 6, 4C3 = 4, 4C4 = 1

따라서 이 경우 최대 계수는 6입니다.

Input - N=5

Output - 최대 계수 - 10

Explanation - 5C0= 1, 5C1 = 5, 5 2 =10, 5C3 = 10, 5C4 = 5, 5C5 = 1

따라서 이 경우 최대 계수는 10입니다.

아래 프로그램에서 사용한 방법은 다음과 같습니다

  • 사용자로부터 N을 입력 받습니다.

  • maxCoeff(int n) 함수는 하나의 매개변수 'n'을 받아들이고 C[n+1][n+1]에서 지금까지 발견된 가장 큰 계수를 반환합니다.

  • 최소 및 최대 변수를 0으로 초기화합니다. 'min'은 C[][] 배열을 반복하는 데 사용되고 'max'는 발견된 최대 계수 값을 저장하는 데 사용됩니다.

  • i가 0부터 n까지인 루프는 C[][] 배열을 초기화하는 데 사용됩니다.

  • 이제 다른 루프에서 'i' 또는 'n' 중 더 작은 값을 반복합니다.

  • i==j이면 C[i][j]==1입니다. 그렇지 않으면 C[i][j] = C[i-1][j-1] + C[i-1][j]입니다.

  • 이제 전체 C[][]를 다시 반복하고 최대 계수를 max에 저장합니다.

  • 결과를 반환합니다.

Example

Demonstration

#include <stdio.h>
int maxCoeff(int n){
   int C[n+1][n+1];
   int max=0,min=0;
   // Calculate value of Binomial Coefficient in
   for (int i = 0; i <= n; i++){
      min=i<n?i:n;
      for (int j = 0; j <= min; j++){
         if (j == 0 || j == i)
            C[i][j] = 1;
         else
            C[i][j] = C[i-1][j-1] + C[i-1][j];
      }
   }
   for (int i = 0; i <= n; i++){
      max = max> C[n][i] ? max: C[n][i];
   }
   return max;
}
int main(){
   int N = 3;
   printf("Maximum Coefficient :%d", maxCoeff(N) );
   return 0;
}

Output

위 코드를 실행하면 다음과 같은 출력이 생성됩니다 −

Maximum Coefficient: 3

위 내용은 C 언어에서 이항 계수의 최대값은 얼마입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제