동적 프로그래밍을 사용하여 이항 계수을 찾으려면 코드를 구현해야합니다. 그러나 나는 여기 내가 가지고있는 코드를 배열 B를 설정하는 방법을 모른다 : 당신은 즉석에서 메모리를 할당 할 <stdlib.h>
에서 malloc()
및 calloc()
기능을 사용할 수 있습니다배열 B [0..n] [0..k]를 설정하는 방법. 도와주세요
#include <stdio.h>
int minimum(int a, int b) { return (a < b) ? a : b; }
main() {
int n = 50, k;
printf("Enter value for k:");
scanf("%d", &k);
printf("Value of coefficient %d, %d is: %d\n", n, k, bin2(n, k));
return 0;
}
// code to be implemented
int bin2(int n, int k) {
int i, j;
// array to initialize. Help
int B[0..n][0..k];
for (i = 0; i <= n; i++)
for (j = 0; j <= minimum(i, k); j++)
if (j == 0 || j == i)
B[i][j] = 1;
else
B[i][j] = B[i - 1][j - 1] + B[i - 1][j];
return B[n][k];
}
'int B [n] [k]; '는 선언이 될 수 있고 for i 루프는'i
mch
관련 항목 : 만약 당신이 'B'의 선언을 고치지 만 코드는 'i'와'j' 차원의 마지막 주소 지정 가능한 슬롯을 지나서 하나의 요소를 실행하기 때문에 * 정의되지 않은 동작을 호출 할 것입니다 이온. C 배열은 0- 기본 인덱스입니다. 예 :'int A [N]'은 A [0]부터 A [N-1]까지 색인 가능합니다. – WhozCraig
감사합니다. @mch는 k 값이 무엇이든 출력합니다. – user2909151