#include <stdio.h>
#define MAX 200
unsigned int C[MAX + 1][MAX + 1] = { 0 };
void calcBino() { //이항계수 계산
for (int i = 0; i <= MAX; i++) {
C[i][0] = C[i][i] = 1;
for (int j = 1; j < i; j++)
C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
}
}
int main() {
calcBino();
printf("%u", C[45][6]);
}
(로또 1등 경우의 수 45C6을 출력하고 있다)
MAX개 만큼 조합의 경우의 수를 미리 계산하는 코드
1차원 배열만 쓰도록 수정해보렴.
unsigned int C[MAX + 1];
한번 테이블 만들어 놓고 우려먹는거라 별 의미없겠다.
빈공간없는 n*m 1차 배열 만들기도 쉽고.
또 병돋았네. 책에서 본코드 그대로 올린거니까 좀. 이해하기 쉬우라고 이렇게 써놨겠지. 애초에 좌우대칭이라 코드 늘리면 연산 절반으로 줄일 수 있는데 그걸 몰라서 안하나..어휴
뭔 병. 인터렉션 하는거지.
니가 뭘 할 수 있다 할 수 없다는 이야길 한게 아니라 이코드를 어떻게 바꾸면 재밌을까 생각해보다가 뭐 바꿔봐야 별로 재미없겠단 생각은 드네.
말을 요따우로 하는거 보니 아직 좀 많이 혼나야겠구나. ㅋㄷ
ㅋㅋ 혼낸대 ㅋㅋㅋ 미안 병까지는 좀 애바인가.. 어제 첨봐서 몰랐었는데 여럿 들은 얘기로는 원래 태클걸기 존나 좋아한다매 그렇게 알려질 정도면 병 언저리 정도 되겠네. 혼내는건ㅋㅋ 내위에 서있다는걸 강조하고 싶음? 너무 마인드가 적나라하게 보여서 소름돋았다. 어제 밟아줘야지도 그렇고.. 고작 디씨에서 누구 위에 서서 뭐할라고
네 글 생까야겠다. thanks
어제 스도쿠 코드도 1 넣어보고 안되면 0으로 지우고 2넣어보고 안되면 0으로 지우고 하는 식으로 9까지 매번 안되면 0으로 지우는 불필요한 부분이 있었는데 사실 매번 지울 필요 없고 1~9 다 해보고 안되면 마지막에 한 번만 0으로 지우면 되는거였는데 이런 미처 몰랐던 로직상에 문제를 지적해준다면야 언제든지 감사하게 받을 수 있음.. 그치만 코드나치는 사양할게요