2011 블 루 브리지 컵 쇼핑 계획 [첫 경기 시험 문제]

쇼핑 계획
회 사 는 한 상점 의 상품권 1000 원 을 보 내 가게 의 m 가지 상품 만 구 매 할 수 있 도록 제한 했다.각 상품 의 가격 은 각각 m1, m2,........................................................................
프로그램 입력:
      첫 번 째 줄 은 정수 m 로 구 매 가능 한 상품 의 종 류 를 나타 낸다.
      다음은 m 개의 정수 로 한 줄 씩 이 m 가지 상품 의 단 가 를 대표 한다.
프로그램 출력:
      첫 줄 은 하나의 정수 로, 모두 몇 가지 방안 이 있 는 지 를 나타 낸다.
      두 번 째 줄 부터 각 방안 이 1 줄 을 차지 하고 각 상품 의 구 매 수량 을 표시 하 며 중간 에 빈 칸 으로 구분한다.
예 를 들 면:
입력:
2
200
300
출력
2
2 2
5 0
입력:
2
500
800
출력
1
2 0
참고 답안 은 다음 과 같다.
#include<stdio.h>
#include<string.h>
int cost;
int n;//     
int price[2000];//     
int num[100];//     
int sum=0;//     
int arg[100][100];//         
void Fun(int x)//  ,              (         ) 
{
    int i;
    if(cost>1000||x>=n)
    return;
    if(cost==1000)
    {
       for(i=0; i<n; i++)
         arg[sum][i] = num[i];
         sum++;
         return;

    }
    num[x]++;//          
    cost+=price[x];
    Fun(x);//           
    num[x]--;//           
    cost-=price[x];
    Fun(x+1);//    
}
int main()
{
    int i,j;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    scanf("%d",&price[i]);
    memset(num,0,sizeof(num));//   0          
    Fun(0);
    printf("%d
",sum); for(i=0;i<sum;i++) { printf("%d",arg[i][0]);// for(j=1;j<n;j++) printf(" %d",arg[i][j]); puts(""); } return 0; }

보충 지식:
599
memset
() 함수: s 가 가리 키 는 메모리 의 앞 n 개 를 바이트 의 내용 은 모두 ch 가 지정 한 ASCII 값 으로 설정 되 어 있 습 니 다. 블록의 크기 는 세 번 째 매개 변수 로 지정 되 어 있 습 니 다. 이 함 수 는 보통 새로 신청 한 메모리 의 초기 화 작업 을 합 니 다. 반환 값 은 S 를 가리 키 는 지침 입 니 다.
구체 적 인 용법:
첫째: ch 와 n 의 위 치 를 반대로 만 들 었 다.
하나의 char a [20] 를 0 으로 치 우려 면 반드시 memset (a, 0, 20) 이 어야 한 다 는 것 을 기억 해 야 한다.
memset (a, 20, 0) 이 아 닙 니 다.
둘째: memset 을 지나치게 사용 하면 프로그래머 들 이 어떤 심리 적 그림자 가 있 을 수 있다 고 생각 합 니 다. 그들 은 초기 화 되 지 않 은 메모 리 를 두려워 하기 때문에 이런 코드 를 쓸 것 입 니 다.
char buffer[20];
memset(buffer,0,sizeof(char)*20);
strcpy(buffer,"123");
/////////////////////////////////////////////////////////////
///////////    memset    ,strcpy   buffer    ,    memset,
/////////// printf  buffer            。

좋은 웹페이지 즐겨찾기