하고 싶은 얘기를 마음대로 쓰는 게시판입니다. 개발 관련 이야기, 살면서 재미있었던 일, 인생 상담, 예쁘고 신기한 사진 등 마음대로 떠들어 보세요. 단, 개발관련 질문만은 별도의 게시판을 이용해 주십시오.
  • c언어 함수 문제 질문 있습니다.
  • 조회 수: 440, 추천 수: 0/0, 2017-05-27 04:14:11(2017-04-11)
  • 문제

    현재 주머니에 5000원이 있다.  DVD 한편을 빌리면 3.500원이 남는다. 슈퍼에 들러서 크림빵(500원),  새우깡(700원),  콜라(400원)를 사려한다. 잔돈을 하나도 남기지 않고 이 세가지 물건을 하나 이상 반드시 구매하려면 어떻게 구매를 진행해야 하겠는가? 물론 여기에는 여러 가지 경우의 수가 있을겄이다. 필자가 어떠한 선택을 할 수있는지 여러분이 제시하기.


    실행의 예

    현재 당신이 소유하고 있는 금액 : 3500

    크림빵 1개, 새우깡 2개, 콜라 4개

    크림빵 2개, 새우깡 3개, 콜라 1개

    크림빵 4개, 새우깡 1개, 콜라 2개

    어떻게 구입하시겠습니까?


    문제가 이겁니다.


    c언어 함수를 이용해서 풀어야하는데 설명좀 부탁드리겠습니다.

    감사합니다.

댓글 1

  • 앗삼

    2017.05.27 04:14

    해당 문제에서 중요한 부분을 봅시다.

    조건1 잔돈을 남기지 않는다 = 딱 떨어져야 한다.

    조건2 3가지 물건을 반드시 하나이상 구매해야 한다. (for문의 초기값은 1로 시작해야 겠지요)

    조건3 모든 경우의 수를 제시한다.



    자, 100단위는 귀찮으니 나눕시다. 

    식은 35 = 5x + 7y + 4z로 둘 수 있겠네요

    모든 경우의 수가 필요하니 3중 루프를 사용하면 되겠네요.


    #include <stdio.h>

    void main() {
        int x, y, z;
        int money = 35;

        //35 = 5x + 7y + 4z

        for (x = 1;x < 7;x++) { // 최소 1개 이상은 필수니 x=1;  7*5=35 이므로 x는 7보다는 작아야 합니다.

            for (y = 1;y < 5;y++) {

                for (z = 1;z < 9;z++) {

                    if (5 * x + 7 * y + 4 * z == 35) { printf("햄:%d 빵:%d 밥:%d\n", x, y, z); }
                }

            }
        }
    }



    문제를 올릴때는  ~~~해봤는데 ~~부분에서 막혀요 이런식으로 올려야 합니다.

    남이 만든거만 보면 중요한 발상을 못하니까요.


    식을 생각하지 못했다면 수학이 부족합니다. 그렇지 않다면 C언어 강좌 4장을 보세요.

현재 게시판 기능 테스트중입니다. 디자인이나 게시판 구성은 언제든지 예고없이 변경될 수 있습니다.