Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Lotto/송지원: Difference between revisions

From ZeroWiki
imported>enochbible
No edit summary
 
imported>enochbible
No edit summary
Line 1: Line 1:
== 코드 ==
== 코드 ==
* Soldiers 해야 하는줄 모르고 하다가 말았던 문제
* Soldiers 해야 하는줄 모르고 하다가 말았던 문제
* 코드는 잠시만 기다려주삼
 
#include <stdio.h>
#include <stdlib.h>
 
int nc6( int n ) {  // nC6 함수
    int res = 1;
    int i;
 
    for( i = 0; i < 6; i++ )
        res *= n-i;
 
    res /= 720;
 
    return res;
}
 
int dscanf( int *pnum ) {
    scanf("%d", pnum);
    return *pnum;
}
 
void main()
{
    int n;
    int *nums;
    int dmy[6]; // dummy variable set
    int i, j, k;
 
    while( dscanf(&n) != 0 ) {
        nums = (int *)malloc(sizeof(int) * n);
 
        for( i = 0; i < n; i++ )
            scanf("%d", &nums[i]);
 
        for( i = 0; i < 6; i++ ) 
            dmy[i] = i;
 
        for( i = 0; i < nc6(n); i++ ) {
            for( j = 0; j < 6; j++ ) {
                printf("%d", nums[dmy[j]]);
                 
                if( j != 5 ) printf(" ");
                else printf("\n");
            }
 
            dmy[5]++;
            for( j = 0; j < 5; j++ ) {
                if( dmy[5-j] == n-j ) {
                    dmy[5-j-1]++;
 
                    for( k = 5-j; k < 6; k++ )
                        dmy[k] = dmy[k-1] + 1;
                }
            }
        }
 
        printf("\n");
 
        free(nums);
    }
}



Revision as of 01:09, 23 August 2011

코드

  • Soldiers 해야 하는줄 모르고 하다가 말았던 문제
#include <stdio.h> 
#include <stdlib.h> 
  
int nc6( int n ) {  // nC6 함수

    int res = 1; 
    int i; 
  
    for( i = 0; i < 6; i++ ) 
        res *= n-i; 
  
    res /= 720; 
  
    return res; 
} 
  
int dscanf( int *pnum ) { 
    scanf("%d", pnum); 
    return *pnum; 
} 
  
void main() 
{ 
    int n; 
    int *nums; 
    int dmy[6]; // dummy variable set 
    int i, j, k; 
  
    while( dscanf(&n) != 0 ) { 
        nums = (int *)malloc(sizeof(int) * n); 
  
        for( i = 0; i < n; i++ ) 
            scanf("%d", &nums[i]);
  
        for( i = 0; i < 6; i++ )  
            dmy[i] = i; 
  
        for( i = 0; i < nc6(n); i++ ) { 
            for( j = 0; j < 6; j++ ) { 
                printf("%d", nums[dmy[j]]); 
                  
                if( j != 5 ) printf(" ");
                else printf("\n");
            } 
  
            dmy[5]++; 
            for( j = 0; j < 5; j++ ) { 
                if( dmy[5-j] == n-j ) { 
                    dmy[5-j-1]++; 
  
                    for( k = 5-j; k < 6; k++ ) 
                        dmy[k] = dmy[k-1] + 1; 
                } 
            } 
        } 
  
        printf("\n"); 
  
        free(nums); 
    } 
}