lotto001.cpp

#include <stdio.h>


// 로또 조합이 8145060 조합중 몇번째 조합인지 알아내기

int getOrderNumber(int r[])

{

int sum=0,nn=0,a=0,b=0,c=0,d=0,e=0,f=0;


for(a=1; a<r[0]; a++) {

nn = ((45-a)*(45-a-1)*(45-a-2)*(45-a-3)*(45-a-4)) / (5*4*3*2*1);

sum += nn;

}


for(b=a+1; b<r[1]; b++) {

nn = ((45-b)*(45-b-1)*(45-b-2)*(45-b-3)) / (4*3*2*1);

sum += nn;

}


for(c=b+1; c<r[2]; c++) {

nn = ((45-c)*(45-c-1)*(45-c-2)) / (3*2*1);

sum += nn;

}


for(d=c+1; d<r[3]; d++) {

nn = ((45-d)*(45-d-1)) / (2*1);

sum += nn;

}


for(e=d+1; e<r[4]; e++) {

nn = ((45-e)) / (1);

sum += nn;

}


for(f=e+1; f<r[5]; f++) {

nn = 1;

sum += nn;

}

sum++;

return sum;

}

 

int main(int argc, char *argv[])

{

int r1[6]={1,2,3,4,5,6};

int r2[6]={40,41,42,43,44,45};

printf("1,2,3,4,5,6 ==> %d\n", getOrderNumber(r1)); // 결과: 1

printf("40,41,42,43,44,45 ==> %d\n", getOrderNumber(r2)); // 결과: 8145060

getchar();

 

return 0;

}


로또번호로 몇번째 조합인지를 구하는 함수 입니다.


1,2,3,4,5,6 은 첫번째 조합

1,2,3,4,5,7 은 두번째 조합

....

40,41,42,43,44,45 은 마지막 8145060 번째 조합 입니다.



Posted by 잇힝2012
,